eal/windows: fix out-of-memory check in asprintf
Check vsnprintf() result to prevent calling malloc() with negative size. Check actual malloc() result and terminate asprintf() with documented error code to prevent the use of NULL pointer. Fixes: e8428a9d8 ("eal/windows: add some basic functions and macros") Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Acked-by: Ranjit Menon <ranjit.menon@intel.com>
This commit is contained in:
parent
f872e4d917
commit
6c45dff00a
@ -64,12 +64,15 @@ asprintf(char **buffer, const char *format, ...)
|
||||
va_list arg;
|
||||
|
||||
va_start(arg, format);
|
||||
size = vsnprintf(NULL, 0, format, arg) + 1;
|
||||
size = vsnprintf(NULL, 0, format, arg);
|
||||
va_end(arg);
|
||||
if (size < 0)
|
||||
return -1;
|
||||
size++;
|
||||
|
||||
*buffer = malloc(size);
|
||||
if (buffer == NULL)
|
||||
printf("Cannot allocate memory");
|
||||
if (*buffer == NULL)
|
||||
return -1;
|
||||
|
||||
va_start(arg, format);
|
||||
ret = vsnprintf(*buffer, size, format, arg);
|
||||
|
Loading…
x
Reference in New Issue
Block a user