New paste Repaste Download
$ git diff libsemanage/src/genhomedircon.c
diff --git a/libsemanage/src/genhomedircon.c b/libsemanage/src/genhomedircon.c
index 8782e2cb..d7b79c4c 100644
--- a/libsemanage/src/genhomedircon.c
+++ b/libsemanage/src/genhomedircon.c
@@ -354,24 +354,44 @@ static semanage_list_t *get_home_dirs(genhomedircon_settings_t * s)
path = semanage_findval(PATH_ETC_LOGIN_DEFS, "UID_MIN", NULL);
if (path && *path) {
- temp = atoi(path);
- minuid = temp;
- minuid_set = 1;
+ char *endptr;
+ const unsigned long val = strtoul(path, &endptr, 0);
+ if (endptr != path && *endptr == '\0') {
+ minuid = (uid_t)val;
+ minuid_set = 1;
+ } else {
+ /* we were provided an invalid value, use defaults.  */
+ minuid = 1000;
+ minuid_set = 1;
+ }
}
free(path);
path = NULL;
path = semanage_findval(PATH_ETC_LOGIN_DEFS, "UID_MAX", NULL);
if (path && *path) {
- temp = atoi(path);
- maxuid = temp;
+ char *endptr;
+ const unsigned long val = strtoul(path, &endptr, 0);
+ if (endptr != path && *endptr == '\0') {
+ maxuid = (uid_t)val;
+ } else {
+ /* we were provided an invalid value, use defaults.  */
+ maxuid = 60000;
+ }
}
free(path);
path = NULL;
path = semanage_findval(PATH_ETC_LIBUSER, "LU_UIDNUMBER", "=");
if (path && *path) {
- temp = atoi(path);
+ char *endptr;
+ const unsigned long val = strtoul(path, &endptr, 0);
+ if (endptr != path && *endptr == '\0') {
+ temp = (uid_t)val;
+ } else {
+ /* we were provided an invalid value, use defaults.  */
+ temp = 500;
+ }
if (!minuid_set || temp < minuid) {
minuid = temp;
minuid_set = 1;
Filename: $ git diff libsemanage/src/genhomedircon.c;. Size: 2kb. View raw, , hex, or download this file.

This paste expires on 2025-08-06 18:00:03.904766. Pasted through v1-api.