]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
hurd _S_msg_add_auth: Initialize new arrays to 0
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Mon, 2 Jan 2023 00:08:38 +0000 (01:08 +0100)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Mon, 2 Jan 2023 10:36:11 +0000 (11:36 +0100)
If make_list fails, they would be undefined, and freeup with free
uninitialized pointers.

hurd/hurdauth.c

index 9086e9484cf9771d8dfd62611097932ebf0c0961..25cc8ee88de3745cc57d4e2fc610aef7d8f11dee 100644 (file)
@@ -101,21 +101,24 @@ _S_msg_add_auth (mach_port_t me,
   __mutex_lock (&_hurd_id.lock);
   _hurd_check_ids ();
 
-#define MAKE(genaux,uidgid)                                                \
-  make_list (&new ## genaux ## uidgid ## s,                                \
+#define MAKE(genaux,uidgid) ({                                             \
+  new ## genaux ## uidgid ## s = 0;                                        \
+  nnew ## genaux ## uidgid ## s = 0;                                       \
+  make_list (&new ## genaux ## uidgid ## s,                                \
             &nnew ## genaux ## uidgid ## s,                                \
             _hurd_id.genaux.uidgid ## s,                                   \
             _hurd_id.genaux.n ## uidgid ## s,                              \
             genaux ## uidgid ## s,                                         \
-            n ## genaux ## uidgid ## s)
+            n ## genaux ## uidgid ## s);                                   \
+})
 
   err = MAKE (gen, uid);
   if (!err)
-    MAKE (aux, uid);
+    err = MAKE (aux, uid);
   if (!err)
-    MAKE (gen, gid);
+    err = MAKE (gen, gid);
   if (!err)
-    MAKE (aux, gid);
+    err = MAKE (aux, gid);
 #undef MAKE
 
   __mutex_unlock (&_hurd_id.lock);