From: Rich Felker <dalias@libc.org>
To: "Zhao, Lihua (CN)" <Lihua.Zhao.CN@windriver.com>
Cc: "musl@lists.openwall.com" <musl@lists.openwall.com>
Subject: Re: [musl] [PATCH] mman: correct length check in __shm_mapname
Date: Mon, 4 Nov 2024 22:00:58 -0500 [thread overview]
Message-ID: <20241105030058.GF10433@brightrain.aerifal.cx> (raw)
In-Reply-To: <PH7PR11MB5795F548FFA02488A42934FCB3522@PH7PR11MB5795.namprd11.prod.outlook.com>
On Tue, Nov 05, 2024 at 02:03:21AM +0000, Zhao, Lihua (CN) wrote:
> This issue is found by attached test case, it works well with glibc.
>
> sem_name[0] = '/';
>
> sem_name[NAME_MAX + 1] = '\0';
>
> memset(sem_name + 1, 'N', NAME_MAX);
>
> /* Create the semaphore */
> sem = sem_open(sem_name, O_CREAT, 0777, 1);
>
> The above code will generate below string which has one '/' and 255 'N's:
>
> "/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
>
> When call __shm_mapname, it firstly try to skip the first '/'
> character, name point to the first 'N' character, the p will point
> to the EOS, so the p-name equal 255, the original code won't enter
> the ENAMETOOLONG branch. The name string should end with EOS, and
> all valid characters should be less than or equal to 254.
This "should" is incorrect. A name consisting of 255 N's is valid not
an error. NAME_MAX is the maximum length of a file name (pathname
component) in bytes, not the amount of storage needed for such a
string buffer.
Reference:
https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/limits.h.html
"{NAME_MAX}
Maximum number of bytes in a filename (not including the
terminating null of a filename string)."
Rich
next prev parent reply other threads:[~2024-11-05 3:01 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-05 1:06 lihua.zhao.cn
2024-11-05 1:46 ` Rich Felker
2024-11-05 2:03 ` Zhao, Lihua (CN)
2024-11-05 3:00 ` Rich Felker [this message]
2024-11-05 4:56 ` [musl] [PATCH v2] " lihua.zhao.cn
2024-11-05 5:15 ` Rich Felker
2024-11-05 6:06 ` Zhao, Lihua (CN)
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=20241105030058.GF10433@brightrain.aerifal.cx \
--to=dalias@libc.org \
--cc=Lihua.Zhao.CN@windriver.com \
--cc=musl@lists.openwall.com \
/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.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).