]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
resolv: free only initialized items from gai pool
authorJan Palus <jpalus@fastmail.com>
Mon, 30 Oct 2023 18:57:01 +0000 (19:57 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 20 Nov 2023 14:03:29 +0000 (15:03 +0100)
pool_max_size denotes total allocated rows in pool but possibly not yet
initialized. it's pool_size that represents number of actually occupied
rows hence use it when freeing pool to avoid freeing random addresses.

Signed-off-by: Jan Palus <jpalus@fastmail.com>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
resolv/gai_misc.c

index d02bd7ed23689f047bdad8f8cebcaf9976ca0a4d..266ed6931cbfad97f3a7e4dd986f97123f3bb897 100644 (file)
@@ -1,4 +1,5 @@
 /* Copyright (C) 2001-2023 Free Software Foundation, Inc.
+   Copyright The GNU Toolchain Authors.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -442,7 +443,7 @@ __gai_freemem (void)
 {
   size_t row;
 
-  for (row = 0; row < pool_max_size; ++row)
+  for (row = 0; row < pool_size; ++row)
     free (pool[row]);
 
   free (pool);