diff options
-rw-r--r-- | libbb/xfuncs_printf.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index 05aa07ce8..a70683241 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c @@ -541,13 +541,11 @@ int FAST_FUNC bb_xioctl(int fd, unsigned request, void *argp) char* FAST_FUNC xmalloc_ttyname(int fd) { - char *buf = xzalloc(128); - int r = ttyname_r(fd, buf, 127); - if (r) { - free(buf); - buf = NULL; - } - return buf; + char buf[128]; + int r = ttyname_r(fd, buf, sizeof(buf) - 1); + if (r) + return NULL; + return xstrdup(buf); } void FAST_FUNC generate_uuid(uint8_t *buf) |