From: Stefan Liebler Date: Thu, 23 Apr 2026 12:43:33 +0000 (+0200) Subject: Remove EXIT_UNSUPPORTED in stdlib/test-bz22786 if path is NULL X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=82d9303976c74c337ef67dda10bf08c2b28aedac;p=thirdparty%2Fglibc.git Remove EXIT_UNSUPPORTED in stdlib/test-bz22786 if path is NULL With commit 6c3a8a9d868a8deddf0d6dcc785b6d120de90523 (2018-08-25), the test used xmalloc instead of malloc and therefore removed the path == NULL check as xmalloc is printing an error message and exit with a fail in this case. On s390-32 this was always a FAIL instead of UNSUPPORTED, thus the previous behaviour was re-enabled with commit 3bad2358d67d371497079bba4f8eca9c0096f4e2 five days later on 2018-08-30. Therefore, we don't know if this also happens on other systems. While removing s390-32 with commit b01debcd8f5229860b3224ea135b1b8456281cee I've adjusted the comment and Adhemerval asked whether this can also happen on other systems with little physical memory. We've decided to remove the EXIT_UNSUPPORTED in this extra commit instead of the large s390-32 removal one. See libc-alpha: https://inbox.sourceware.org/libc-alpha/20260409085102.3475867-1-stli@linux.ibm.com/T/#m28b5375bef4cfb10729b93c7e658b91a14b07b85 If this change leads to test fails somewhere, please add a comment about your used system and revert this commit. Nowadays path is allocated with support_blob_repeat_allocate which returns an empty struct in case of malloc/mmap is not able to allocate enough memory. All other tests using support_blob_repeat_allocate (stdlib/tst-strtod-overflow.c, support/tst-support_blob_repeat.c and string/tst-memmove-overflow.c) are properly checking the start or size field directly or indirectly via TEST_COMPARE_BLOB. While the test support/tst-support_blob_repeat.c just prints a warning if allocating the large mappings is not possible, the other tests exit with UNSUPPORTED. At least for the realpath-part, the commit 855a67c3cc81be4fc806c66e3e01b53e352a4e9f introduced support_accept_oom handling. According to the discussion: https://inbox.sourceware.org/libc-alpha/8a1fd5b2-5118-498e-babf-e46c0e6d1cdf@redhat.com/ Agreed, test-bz22786 can use a lot of memory. OK. These convert OOM to UNSUPPORTED for the test if there isn't enough memory. In case of not enough memory while allocating path, this change would lead to a segmentation fault instead of UNSUPPORTED. As this is inconsistent compared to the second realpath-part and also to the other tests using support_blob_repeat_allocate, I would prefer keeping UNSUPPORTED if path is NULL. Nevertheless, I've posted this patch for discussion as promised while reviewing the s390-32 removal patch. Reviewed-by: Adhemerval Zanella --- diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c index 6e2636d896..494fc2adc7 100644 --- a/stdlib/test-bz22786.c +++ b/stdlib/test-bz22786.c @@ -43,13 +43,6 @@ do_test (void) struct support_blob_repeat repeat = support_blob_repeat_allocate ("a", 1, path_len); char *path = repeat.start; - if (path == NULL) - { - printf ("Repeated allocation (%zu bytes): %m\n", path_len); - /* On systems with little physical memory the test will - fail and should be unsupported. */ - return EXIT_UNSUPPORTED; - } TEST_VERIFY_EXIT (symlink (".", lnk) == 0);