Found by covscan.
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
}
while (size < maxsize) {
+ char *tmp = NULL;
size_t newbufsize;
size_t nread;
goto fail; /* overflow */
}
- p = realloc(p, sizeof(char)*newbufsize);
- if (p == NULL) {
+ tmp = realloc(p, sizeof(char) * newbufsize);
+ if (tmp == NULL) {
+ free(p);
goto fail;
}
+ p = tmp;
nread = fread(p+size, 1, chunk, file);
size += nread;
err = ferror(file);
if (err != 0) {
+ free(p);
goto fail;
}