* 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
|
* NEWS, libmisc/addgrps.c: Fix allocator loop. Continue to
|
||||||
getgroups() when getgroups fails (-1) with errno==EINVAL.
|
getgroups() when getgroups fails (-1) with errno==EINVAL.
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "prototypes.h"
|
#include "prototypes.h"
|
||||||
#include "groupio.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);
|
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));
|
memset (used_gids, false, sizeof (bool) * (gid_max + 1));
|
||||||
|
|
||||||
if ( (NULL != preferred_gid)
|
if ( (NULL != preferred_gid)
|
||||||
@ -189,6 +196,7 @@ int find_new_gid (bool sys_group,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free (used_gids);
|
||||||
*gid = group_id;
|
*gid = group_id;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "prototypes.h"
|
#include "prototypes.h"
|
||||||
#include "pwio.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);
|
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));
|
memset (used_uids, false, sizeof (bool) * (uid_max + 1));
|
||||||
|
|
||||||
if ( (NULL != preferred_uid)
|
if ( (NULL != preferred_uid)
|
||||||
@ -189,6 +196,7 @@ int find_new_uid (bool sys_user,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free (used_uids);
|
||||||
*uid = user_id;
|
*uid = user_id;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user