fix off-by-one error in checks for implementation-internal signal numbers
[oweals/musl.git] / src / misc / ptsname.c
index 4f56781d5cdb671678a62a1afac9c304efa45606..a34779276fa011be935e1db0860d775165ba8729 100644 (file)
@@ -1,9 +1,15 @@
 #include <stdlib.h>
+#include <errno.h>
 
 int __ptsname_r(int, char *, size_t);
 
 char *ptsname(int fd)
 {
        static char buf[9 + sizeof(int)*3 + 1];
-       return __ptsname_r(fd, buf, sizeof buf) < 0 ? 0 : buf;
+       int err = __ptsname_r(fd, buf, sizeof buf);
+       if (err) {
+               errno = err;
+               return 0;
+       }
+       return buf;
 }