From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com [IPv6:2001:4860:4864:20::2b]) by sourceware.org (Postfix) with ESMTPS id 536063858D20 for ; Mon, 5 Jun 2023 19:55:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 536063858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-19f31d6b661so5880387fac.0 for ; Mon, 05 Jun 2023 12:55:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1685994905; x=1688586905; h=content-transfer-encoding:in-reply-to:organization:from:references :to:content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=vmAW78gtMPp8tdnabALYRT84KKkpQAa8PiXz5plAhX4=; b=RL8wmaZVejBTd54iieLJUCURn2r0xSXwDX9uDrN1OiBYYloSK9MqxqEcl0x1ZOKZnp msguAaKyhh9zrC5ejgQuD3aaoDwtjLh2dQtkGQQekoCo/oUyQUPmrn2aeMz0DbyLwhOI b/Ctp4LRLBEnO84KMBlZ/Izf48r/jmcPxJpH8WQ9EzMLoQ5y69qqQCaTfUWdDEte3c35 NpoFyKgBWmAS4og7pVEbo87C/zW+ZVI9BswIG9vfM25g0QMgROrE0Fno8R41DsGUlaeY cIX6c2KU0p9Vgv7ZGOx8+gZeafezgmsJpdiNnMSGcbBFHwoGivbtid7i3DGvaZzx6Goc yzoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685994905; x=1688586905; h=content-transfer-encoding:in-reply-to:organization:from:references :to:content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vmAW78gtMPp8tdnabALYRT84KKkpQAa8PiXz5plAhX4=; b=Bl5z3XiZVHT6+Z7CeZlOt2dFGnrkVD7bx3UIHOln1PXwLnF54RC3KkJ6tvdj/WBMZO MhngVrg2eKAHXVptIRNLRAuDZ0GFprWDEW7KSdN80mg3JOQobGI/usIrU8nnKRIB+UDC buwHQ4tyvqY5hT4TLK5rVpAc03nWMCXHkm6ffbNX0a2vMFjoJEhfEOpAdgPM/LXTxfEk jtIikhaCwzjObmAC58i69tnB9cOFgG0nPqCFliXKKUAmB0GaY3sG1szAz1XfoCuF97lF I3q4K2alAj8Kretkz6mkUOw/59ZEqYd5JZcaQ/m0ZURGfEf3uFoRV28L3FtviFt9f0eQ T/Sg== X-Gm-Message-State: AC+VfDwaeQmiYCmJMZmkQvrevdnHJ4CiNlexeQ9KwLjqO5vOwRWxjYo1 MieH133BAucrPVfoPcs1I3XC1bxMYQDHfEjTmPWtbg== X-Google-Smtp-Source: ACHHUZ7Ytb/Rhx/KAPw9SHV7SR8mxwXgAZIOUXD5i84iY2d4Fl8r/xo2qT0bdNLv8gCLk9/jEVFDOw== X-Received: by 2002:a05:6870:e506:b0:18f:558a:1f35 with SMTP id y6-20020a056870e50600b0018f558a1f35mr34394oag.59.1685994905615; Mon, 05 Jun 2023 12:55:05 -0700 (PDT) Received: from ?IPV6:2804:1b3:a7c1:fe49:680c:a97a:ffe6:9a8f? ([2804:1b3:a7c1:fe49:680c:a97a:ffe6:9a8f]) by smtp.gmail.com with ESMTPSA id l11-20020acabb0b000000b00398031b1014sm3858939oif.26.2023.06.05.12.55.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 05 Jun 2023 12:55:04 -0700 (PDT) Message-ID: Date: Mon, 5 Jun 2023 16:55:02 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Subject: Re: [PATCH] debug: Actually run tst-longjmp_chk3.c Content-Language: en-US To: Nisha Poyarekar , libc-alpha@sourceware.org References: <20230601212042.88139-1-nisha.s.menon@gmail.com> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: <20230601212042.88139-1-nisha.s.menon@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 01/06/23 18:20, Nisha Poyarekar via Libc-alpha wrote: > tst-longjmp_c.c test was not run at all because there was no > entry for it in the Makefile. With this change, I have also > included the new test-driver.c instead of test-skeleton.c. > > Signed-off-by: Nisha Poyarekar Maybe use libsupport xalloc_sigstack? Something like: static int do_test (void) { set_fortify_handler (handler); /* Create a valid signal stack and enable it. */ sstk1 = xalloc_sigstack (SIGSTKSZ * 4); /* Trigger the signal handler which will create a jmpbuf that points to the end of the signal stack. */ signal (SIGUSR1, handler); kill (getpid (), SIGUSR1); /* Shrink the signal stack so the jmpbuf is now invalid. */ sstk2 = xalloc_sigstack (SIGSTKSZ); /* This should fail. */ longjmp (jb, 1); FAIL_RET ("longjmp returned and shouldn't"); } And xfree_sigstack before exit. > --- > debug/Makefile | 1 + > debug/tst-longjmp_chk3.c | 30 +++++++++++++----------------- > 2 files changed, 14 insertions(+), 17 deletions(-) > > diff --git a/debug/Makefile b/debug/Makefile > index 096df27aeb..e19aa1107a 100644 > --- a/debug/Makefile > +++ b/debug/Makefile > @@ -279,6 +279,7 @@ tests = \ > tst-backtrace6 \ > tst-longjmp_chk \ > tst-longjmp_chk2 \ > + tst-longjmp_chk3 \ > tst-realpath-chk \ > tst-sprintf-fortify-unchecked \ > # tests > diff --git a/debug/tst-longjmp_chk3.c b/debug/tst-longjmp_chk3.c > index f1e576ad5b..ea0e67d2a6 100644 > --- a/debug/tst-longjmp_chk3.c > +++ b/debug/tst-longjmp_chk3.c > @@ -18,13 +18,12 @@ > > #include > #include > +#include > #include > > -static int do_test (void); > -#define TEST_FUNCTION do_test () > -#include "../test-skeleton.c" > +#include > +#include > > -static char buf[SIGSTKSZ * 4]; > static jmp_buf jb; > > static void > @@ -49,18 +48,17 @@ static int > do_test (void) > { > stack_t ss; > + size_t bufsize = SIGSTKSZ * 4; > + void *buf = xmalloc (bufsize); > > set_fortify_handler (handler); > > /* Create a valid signal stack and enable it. */ > ss.ss_sp = buf; > - ss.ss_size = sizeof (buf); > + ss.ss_size = bufsize; > ss.ss_flags = 0; > if (sigaltstack (&ss, NULL) < 0) > - { > - printf ("first sigaltstack failed: %m\n"); > - return 1; > - } > + FAIL_RET ("first sigaltstack failed: %m\n"); > > /* Trigger the signal handler which will create a jmpbuf that points to the > end of the signal stack. */ > @@ -69,17 +67,15 @@ do_test (void) > > /* Shrink the signal stack so the jmpbuf is now invalid. > We adjust the start & end to handle stacks that grow up & down. */ > - ss.ss_sp = buf + sizeof (buf) / 2; > - ss.ss_size = sizeof (buf) / 4; > + ss.ss_sp = buf + bufsize / 2; > + ss.ss_size = bufsize / 4; > if (sigaltstack (&ss, NULL) < 0) > - { > - printf ("second sigaltstack failed: %m\n"); > - return 1; > - } > + FAIL_RET ("second sigaltstack failed: %m\n"); > > /* This should fail. */ > longjmp (jb, 1); > > - puts ("longjmp returned and shouldn't"); > - return 1; > + FAIL_RET ("longjmp returned and shouldn't"); > } > + > +#include