* libmisc/find_new_uid.c, libmisc/find_new_gid.c: Add missing
memory allocation check.
This commit is contained in:
parent
f140c3a0e5
commit
58baa7aa61
@ -1,4 +1,9 @@
|
||||
2010-06-02 Cal Peake <cp@absolutedigital.net>
|
||||
2011-06-02 Peter Vrabec <pvrabec@redhat.com>
|
||||
|
||||
* libmisc/find_new_uid.c, libmisc/find_new_gid.c: Add missing
|
||||
memory allocation check.
|
||||
|
||||
2011-06-02 Cal Peake <cp@absolutedigital.net>
|
||||
|
||||
* NEWS, libmisc/addgrps.c: Fix allocator loop. Continue to
|
||||
getgroups() when getgroups fails (-1) with errno==EINVAL.
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "prototypes.h"
|
||||
#include "groupio.h"
|
||||
@ -75,7 +76,13 @@ int find_new_gid (bool sys_group,
|
||||
Prog, (unsigned long) gid_min, getdef_ulong ("GID_MIN", 1000UL), (unsigned long) gid_max);
|
||||
}
|
||||
}
|
||||
used_gids = alloca (sizeof (bool) * (gid_max +1));
|
||||
used_gids = malloc (sizeof (bool) * (gid_max +1));
|
||||
if (NULL == used_gids) {
|
||||
fprintf (stderr,
|
||||
_("%s: failed to allocate memory: %s\n"),
|
||||
Prog, strerror (errno));
|
||||
return -1;
|
||||
}
|
||||
memset (used_gids, false, sizeof (bool) * (gid_max + 1));
|
||||
|
||||
if ( (NULL != preferred_gid)
|
||||
@ -189,6 +196,7 @@ int find_new_gid (bool sys_group,
|
||||
}
|
||||
}
|
||||
|
||||
free (used_gids);
|
||||
*gid = group_id;
|
||||
return 0;
|
||||
}
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "prototypes.h"
|
||||
#include "pwio.h"
|
||||
@ -75,7 +76,13 @@ int find_new_uid (bool sys_user,
|
||||
Prog, (unsigned long) uid_min, getdef_ulong ("UID_MIN", 1000UL), (unsigned long) uid_max);
|
||||
}
|
||||
}
|
||||
used_uids = alloca (sizeof (bool) * (uid_max +1));
|
||||
used_uids = malloc (sizeof (bool) * (uid_max +1));
|
||||
if (NULL == used_uids) {
|
||||
fprintf (stderr,
|
||||
_("%s: failed to allocate memory. %s\n"),
|
||||
Prog, strerror (errno));
|
||||
return -1;
|
||||
}
|
||||
memset (used_uids, false, sizeof (bool) * (uid_max + 1));
|
||||
|
||||
if ( (NULL != preferred_uid)
|
||||
@ -189,6 +196,7 @@ int find_new_uid (bool sys_user,
|
||||
}
|
||||
}
|
||||
|
||||
free (used_uids);
|
||||
*uid = user_id;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user