(__argp_fmtstream_ensure): Check for size_t overflow when reallocating storage.

This commit is contained in:
Ulrich Drepper 2003-09-25 05:34:28 +00:00
parent fca9d8e489
commit c706f2a34d
1 changed files with 4 additions and 3 deletions

View File

@ -385,10 +385,11 @@ __argp_fmtstream_ensure (struct argp_fmtstream *fs, size_t amount)
if ((size_t) (fs->end - fs->buf) < amount) if ((size_t) (fs->end - fs->buf) < amount)
/* Gotta grow the buffer. */ /* Gotta grow the buffer. */
{ {
size_t new_size = fs->end - fs->buf + amount; size_t old_size = fs->end - fs->buf;
char *new_buf = realloc (fs->buf, new_size); size_t new_size = old_size + amount;
char *new_buf;
if (! new_buf) if (new_size < old_size || ! (new_buf = realloc (fs->buf, new_size)))
{ {
__set_errno (ENOMEM); __set_errno (ENOMEM);
return 0; return 0;