]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
support: Exit on consistency check failure in resolv_response_add_name
authorFlorian Weimer <fweimer@redhat.com>
Thu, 6 Nov 2025 13:49:21 +0000 (14:49 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 7 Nov 2025 07:50:44 +0000 (08:50 +0100)
Using TEST_VERIFY (crname_target != crname) instructs some analysis
tools that crname_target == crname might hold.  Under this assumption,
they report a use-after-free for crname_target->offset below, caused
by the previous free (crname).

Reviewed-by: Collin Funk <collin.funk1@gmail.com>
support/resolv_test.c

index ab37d3d58cc6316ab5eca72950013dc7b4315841..29e59da9585166ddb49dd49e623b7f3b1abc944d 100644 (file)
@@ -326,7 +326,7 @@ resolv_response_add_name (struct resolv_response_builder *b,
               crname_target = *ptr;
             else
               crname_target = NULL;
-            TEST_VERIFY (crname_target != crname);
+            TEST_VERIFY_EXIT (crname_target != crname);
             /* Not added to the tree.  */
             free (crname);
           }