]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
user-util: fix use after free() on error path
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 31 Jan 2020 14:23:44 +0000 (23:23 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 31 Jan 2020 14:23:44 +0000 (23:23 +0900)
Fixes CID#1412356.

src/basic/user-util.c

index 68c6dd0da78a3a238bc1fbb201657ddbb45939d7..6d22fe31c3da378373667caa4d9e491069fc5a14 100644 (file)
@@ -496,11 +496,9 @@ int getgroups_alloc(gid_t** gids) {
 
                 free(allocated);
 
-                allocated = new(gid_t, ngroups);
+                p = allocated = new(gid_t, ngroups);
                 if (!allocated)
                         return -ENOMEM;
-
-                p = allocated;
         }
 
         *gids = TAKE_PTR(p);