]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
user-util: paranoia — add overflow check on ERANGE loop
authorLennart Poettering <lennart@poettering.net>
Thu, 7 Mar 2019 09:52:35 +0000 (10:52 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 12 Mar 2019 15:10:55 +0000 (16:10 +0100)
src/basic/user-util.c

index b8d10669299a003c828eb01599d9c8c784320fa5..4cf4c5a341459e61dbbc6d8f83f3894f30a6361d 100644 (file)
@@ -350,6 +350,9 @@ char* uid_to_name(uid_t uid) {
                         if (r != ERANGE)
                                 break;
 
+                        if (bufsize > LONG_MAX/2) /* overflow check */
+                                return NULL;
+
                         bufsize *= 2;
                 }
         }
@@ -391,6 +394,9 @@ char* gid_to_name(gid_t gid) {
                         if (r != ERANGE)
                                 break;
 
+                        if (bufsize > LONG_MAX/2) /* overflow check */
+                                return NULL;
+
                         bufsize *= 2;
                 }
         }