ladishd: fix memory corruption bug and some bugs in procfs_get_process_file()

This commit is contained in:
Nedko Arnaudov 2010-09-21 23:53:23 +03:00
parent 3657b68d64
commit a913255273
1 changed files with 7 additions and 5 deletions

View File

@ -2,7 +2,7 @@
/*
* LADI Session Handler (ladish)
*
* Copyright (C) 2009 Nedko Arnaudov <nedko@arnaudov.name>
* Copyright (C) 2009,2010 Nedko Arnaudov <nedko@arnaudov.name>
*
**************************************************************************
* This file contains the code that interfaces procfs
@ -69,6 +69,7 @@ procfs_get_process_file(
if (buffer_ptr == NULL)
{
log_error("malloc failed to allocate buffer with size %zu", buffer_size);
close(fd);
return false;
}
@ -108,22 +109,23 @@ loop:
if (ret < 0)
{
ASSERT(ret == -1);
close(fd);
return false;
}
if (used_size == buffer_size)
{
buffer_ptr = realloc(buffer_ptr, buffer_size + 1);
if (buffer_ptr == NULL)
read_ptr = realloc(buffer_ptr, buffer_size + 1);
if (read_ptr == NULL)
{
log_error("realloc failed to allocate buffer with size %zu", buffer_size + 1);
free(buffer_ptr);
return false;
}
buffer_ptr = read_ptr;
}
buffer_ptr[buffer_size] = 0;
buffer_ptr[used_size] = 0;
*buffer_ptr_ptr = buffer_ptr;
*size_ptr = used_size;