From: Eric Engestrom Date: Wed, 1 May 2019 10:51:01 +0000 (+0100) Subject: util/os_file: resize buffer to what was actually needed X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=955c63d3643f30d7db0c5d16e06a5eda4f62f889;p=mesa.git util/os_file: resize buffer to what was actually needed Fixes: 316964709e21286c2af5 "util: add os_read_file() helper" Reported-by: Jason Ekstrand Signed-off-by: Eric Engestrom Reviewed-by: Tapani Pälli Reviewed-by: Jason Ekstrand --- diff --git a/src/util/os_file.c b/src/util/os_file.c index a700f3aada3..756164c3dfe 100644 --- a/src/util/os_file.c +++ b/src/util/os_file.c @@ -92,6 +92,17 @@ os_read_file(const char *filename) if (actually_read > 0) offset += actually_read; + /* Final resize to actual size */ + len = offset + 1; + char *newbuf = realloc(buf, len); + if (!newbuf) { + free(buf); + close(fd); + errno = -ENOMEM; + return NULL; + } + buf = newbuf; + buf[offset] = '\0'; return buf;