All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alejandro Colomar <alx@kernel.org>
To: linux-man@vger.kernel.org, Bruno Haible <bruno@clisp.org>
Cc: Alejandro Colomar <alx@kernel.org>
Subject: [PATCH v2 0/2] strto[u]l(3) BUGS and CAVEATS
Date: Fri, 21 Mar 2025 23:18:13 +0100	[thread overview]
Message-ID: <cover.1742595341.git.alx@kernel.org> (raw)
In-Reply-To: <939641570ee1c36bfd2ef8788789b54357ed5971.1742589662.git.alx@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 2926 bytes --]

Hi Bruno,

This time, I've added a mention to white space.  I've decided to put
both bugs in the same commit.

And I've added a commit clarifying how to do range checks correctly.


Have a lovely night!
Alex

Alejandro Colomar (2):
  man/man3/strto[u]l.3: BUGS: Signed numbers and white space are not
    rejected
  man/man3/strtol.3: CAVEATS: Clarify how to perform range checks

 man/man3/strtol.3  | 20 ++++++++++++++++++++
 man/man3/strtoul.3 | 19 ++++++++++++++-----
 2 files changed, 34 insertions(+), 5 deletions(-)

Range-diff against v1:
1:  939641570 ! 1:  8faa6a809 man/man3/strtoul.3: BUGS: Signed numbers are not rejected
    @@ Metadata
     Author: Alejandro Colomar <alx@kernel.org>
     
      ## Commit message ##
    -    man/man3/strtoul.3: BUGS: Signed numbers are not rejected
    +    man/man3/strto[u]l.3: BUGS: Signed numbers and white space are not rejected
     
         Reported-by: Bruno Haible <bruno@clisp.org>
         Signed-off-by: Alejandro Colomar <alx@kernel.org>
     
    + ## man/man3/strtol.3 ##
    +@@ man/man3/strtol.3: .SH CAVEATS
    +     goto unsupported_base;
    + .EE
    + .in
    ++.SH BUGS
    ++.SS White space
    ++These functions silently accept leading white space.
    ++One should call
    ++.BR isspace (3)
    ++before
    ++.BR strtol ()
    ++to reject white space.
    + .SH EXAMPLES
    + The program shown below demonstrates the use of
    + .BR strtol ().
    +
      ## man/man3/strtoul.3 ##
     @@ man/man3/strtoul.3: .SH CAVEATS
      and then determine if an error occurred by checking whether
    @@ man/man3/strtoul.3: .SH CAVEATS
     -Negative values are considered valid input and are
     -silently converted to the equivalent
     -.I "unsigned long"
    +-value.
     +.SH BUGS
     +.SS Signed numbers
     +Negative values
     +are considered valid input and
    -+are silently converted to the equivalent
    -+.I unsigned long
    - value.
    -+.P
    -+Users should reject signed numbers
    -+with a wrapper function.
    -+.IP
    -+.EX
    -+unsigned long
    -+strtoul_u(const char *restrict s, char **restrict endp, int base)
    -+{
    -+	while (isspace((unsigned char) *s))
    -+		s++;
    -+	if (!isxdigit((unsigned char) *s))
    -+		return 0;
    -+\&
    -+	return strtoul(s, endp, base);
    -+}
    -+.EE
    ++are silently converted to
    ++.IR "\%unsigned\ long" .
    ++.SS White space
    ++These functions silently accept leading whitespace.
    ++.SS isxdigit(3)
    ++One should call
    ++.BR isxdigit (3)
    ++before
    ++.BR strtoul ()
    ++to reject white space and/or a sign.
      .SH EXAMPLES
      See the example on the
      .BR strtol (3)
-:  --------- > 2:  b5244e62c man/man3/strtol.3: CAVEATS: Clarify how to perform range checks

base-commit: e921861a3d30cfc5f9263747a4e64a68e488288c
-- 
2.47.2


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2025-03-21 22:18 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-21 20:41 [PATCH v1] man/man3/strtoul.3: BUGS: Signed numbers are not rejected Alejandro Colomar
2025-03-21 21:31 ` Bruno Haible
2025-03-21 22:21   ` Alejandro Colomar
2025-03-21 22:18 ` Alejandro Colomar [this message]
2025-03-21 22:18   ` [PATCH v2 1/2] man/man3/strto[u]l.3: BUGS: Signed numbers and white space " Alejandro Colomar
2025-03-21 22:18   ` [PATCH v2 2/2] man/man3/strtol.3: CAVEATS: Clarify how to perform range checks Alejandro Colomar
2025-03-23  0:30 ` [PATCH v3 0/2] strto[u]l.3: BUGS and CAVEATS Alejandro Colomar
2025-03-23  0:30   ` [PATCH v3 1/2] man/man3/strto[u]l.3: BUGS: Signed numbers and white space are not rejected Alejandro Colomar
2025-03-23 10:27     ` Bruno Haible
2025-03-23 11:15       ` Alejandro Colomar
2025-03-23  0:30   ` [PATCH v3 2/2] man/man3/strtol.3: CAVEATS: Clarify how to perform range checks Alejandro Colomar
2025-03-23 11:43 ` [PATCH v4 0/2] strto[u]l.3: BUGS and CAVEATS Alejandro Colomar
2025-03-23 11:43   ` [PATCH v4 1/2] man/man3/strto[u]l.3: BUGS: Signed numbers and white space are not rejected Alejandro Colomar
2025-03-23 13:20     ` Bruno Haible
2025-03-23 14:00       ` Alejandro Colomar
2025-03-23 15:52         ` Bruno Haible
2025-03-23 16:55           ` Alejandro Colomar
2025-03-23 17:03             ` Alejandro Colomar
2025-03-23 17:11               ` Bruno Haible
2025-03-23 18:35                 ` Alejandro Colomar
2025-03-23 18:55           ` Alejandro Colomar
2025-03-23 19:26             ` Bruno Haible
2025-03-23 19:47               ` Alejandro Colomar
2025-03-23 11:43   ` [PATCH v4 2/2] man/man3/strtol.3: CAVEATS: Clarify how to perform range checks Alejandro Colomar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1742595341.git.alx@kernel.org \
    --to=alx@kernel.org \
    --cc=bruno@clisp.org \
    --cc=linux-man@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.