about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Palus <jpalus@fastmail.com>2023-10-30 19:57:01 +0100
committerFlorian Weimer <fweimer@redhat.com>2023-11-20 15:03:29 +0100
commitf2aaf18af50109b0982723bdf4e0a3bca2f8d3d6 (patch)
tree60be5f0a2da51c42b0bdcd9acc69a7910579b1b1
parentcfb5a97a93ea656e3b2263e42142a4032986d9ba (diff)
downloadglibc-f2aaf18af50109b0982723bdf4e0a3bca2f8d3d6.tar.gz
glibc-f2aaf18af50109b0982723bdf4e0a3bca2f8d3d6.tar.xz
glibc-f2aaf18af50109b0982723bdf4e0a3bca2f8d3d6.zip
resolv: free only initialized items from gai pool
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>
-rw-r--r--resolv/gai_misc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/resolv/gai_misc.c b/resolv/gai_misc.c
index d02bd7ed23..266ed6931c 100644
--- a/resolv/gai_misc.c
+++ b/resolv/gai_misc.c
@@ -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);