From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com [IPv6:2607:f8b0:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 020FC385781C for ; Tue, 3 Aug 2021 03:57:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 020FC385781C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ot1-x330.google.com with SMTP id v9-20020a9d60490000b02904f06fc590dbso631810otj.4 for ; Mon, 02 Aug 2021 20:57:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=qnk1IBjL77EwBsd/JDr/OQMmiJKYeH6H4gRQwZEs1cw=; b=b7/XD8+F6R7ZYMgLLhwfqSuoZc4lfUTCPgXA0/OAiYyzZ/IYakj2sg3zyNXcQZXIVH rRZpkroeYt3Yt/rX1l1IaMixp5bSSuC1EjwqCdKK7HiQZhDJ7Pl56EhOWEVWp5EMQRUo keQw/gaGvrptsra+73ubAiFNkoWQXeXAej8BeGfTitx+LREkByAXpmseGWUqGjzbELPy Io2pp18r+ua7Wdrdy99X+yJz/BX3HzkTY3epPJH3/7wrGRb0H37ucXAhbBpWUmzYfqjJ nznYxCYIPo3vpORcKjbKgGHoqqvVzwp+bhhwhIQJz+6qvDGFo86WxJdFrK565h6U0uUW r00g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=qnk1IBjL77EwBsd/JDr/OQMmiJKYeH6H4gRQwZEs1cw=; b=C4/5uirZKV0NfPFYN+fvLivfhs2KPk29o5qATRTIEg3Vybq29a9s86/RKfH3CiQrRP mtPTinSkcuhrMJ1fw4hLyTGky54olzXc/tKzMq1EFOVDagCGZ3sbIf0lsUi1hrZhXp87 CBVt73DTBniMzaKJ0LFTN/BHDJL+4pZ1dH33O/favPIkUN8PXdyvPWqJtFhEP1xKW9eY NTbcPN+r3qO/1DU/YSeJPnOa8cp1DfnDJcrQtDmImuPJ4Hv5ee/6evFpt1rebYP0Wjt0 bd2KDT3BDatOmFzdasSS1nlyXmb4KVenbxFCPvWVwOZB8RnpExWN0fIV+wIb75BeHFcU YgUQ== X-Gm-Message-State: AOAM531Ue3ImP6a3d0KOA8oCzQkQfG3ec5VeE2P7HbjaFwjtuCFd3yqc +8HgnaIyVws3vs8ih/Lwk/sYhooNY4m3sUxUo1obWbx0Eg== X-Google-Smtp-Source: ABdhPJwZoO2hVyltwhoq9OfAJsSo7TjZ1LPTk5Le/z9sIr6H7QGO7oRi4Cl+FJ5IvRjUMSpYBGMWRA7LW/IbJil0BQM= X-Received: by 2002:a05:6830:40ae:: with SMTP id x46mr13769493ott.71.1627963070261; Mon, 02 Aug 2021 20:57:50 -0700 (PDT) MIME-Version: 1.0 References: <20210731132205.536278-1-mfjoyce2004@gmail.com> <20210731132205.536278-2-mfjoyce2004@gmail.com> In-Reply-To: From: Matthew Joyce Date: Tue, 3 Aug 2021 05:57:39 +0200 Message-ID: Subject: Re: [PATCH 1/1] libc: Added implementation for sig2str/str2sig. To: Newlib , Matt Joyce Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Aug 2021 03:57:52 -0000 Hi Corinna, Thanks very much for the suggestion...that sounds sensible. I just made the edits in a new patch (hopefully that's ok). I'm really glad to help...thank you very much for your patience as well! Sincerely, Matt On Mon, Aug 2, 2021 at 1:48 PM Corinna Vinschen wrote: > > Hi Matt, > > a collegue of mine pointed out that it might be good idea to be more > paranoid in terms of the output string size: > > On Jul 31 15:22, Matt Joyce wrote: > > +sig2str(int signum, char *str) > > +{ > > + const sig_name_and_num *sptr; > > + > > + /* If signum falls in lower half of the real time signals range, define > > + * the saved str value as "RTMIN+n" according to the Issue 8 standard */ > > + if ((SIGRTMIN + 1) <= signum && > > + signum <= (SIGRTMIN + SIGRTMAX) / 2) { > > + sprintf(str, "RTMIN+%d", (signum-SIGRTMIN)); > > snprintf(str, SIG2STR_MAX, "RTMIN+%d", (signum-SIGRTMIN)); > > > + return 0; > > + } > > + > > + /* If signum falls in upper half of the real time signals range, define > > + * the saved str value as "RTMAX-m" according to the Issue 8 standard */ > > + if ((((SIGRTMIN + SIGRTMAX) / 2) + 1) <= signum && > > + signum <= (SIGRTMAX - 1)) { > > + sprintf(str, "RTMAX-%d", (SIGRTMAX - signum)); > > snprintf(str, SIG2STR_MAX, "RTMAX+%d", (signum-SIGRTMIN)); > > > + return 0; > > + } > > + > > + /* Otherwise, search for signal matching signum in sig_array. If found, > > + * save its string value in str. */ > > + for (sptr = sig_array; sptr < &sig_array[NUM_OF_SIGS]; sptr++) { > > + if (sptr->sig_num == signum) { > > + strcpy(str, sptr->sig_name); > > strlcpy(str, sptr->sig_name, SIG2STR_MAX); > > What do you think? > > > Corinna >