handle.c:95:5: warning: Array access (from variable 'buf') results in a null pointer dereference
buf[len] = '\0';
^~~
Found-by: clang static analyzer
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
static char *buf = NULL;
static int buflen = 0;
- if (len > buflen) {
+ if (len < 0)
+ len = 0;
+
+ if (len >= buflen) {
if (buf) free (buf);
buflen = (len < 40) ? 80 : (len * 2);
buf = (char *) malloc (buflen+1);
+ if (!buf) {
+ fprintf (stderr, "attempt to allocate %d byte scratch buffer\n", buflen + 1);
+ return NULL;
+ }
}
- if (len > 0)
- strncpy (buf, s, len);
- else
- len = 0;
+ strncpy (buf, s, len);
buf[len] = '\0';
+
return (buf);
}