public inbox for cygwin-patches@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: Philippe Cerfon <philcerf@gmail.com>
Cc: cygwin-patches@cygwin.com
Subject: Re: [PATCH] include/cygwin/limits.h: add XATTR_{NAME,SIZE,LIST}_MAX
Date: Fri, 16 Jun 2023 17:04:06 +0200	[thread overview]
Message-ID: <ZIx55su+P5zInrqa@calimero.vinschen.de> (raw)
In-Reply-To: <CAN+za=NjpooX1JrwbgDgX8yzHkn6AwtYH8yCOjzkUspMZd1W6g@mail.gmail.com>

Hi Philippe,

On Jun 16 16:09, Philippe Cerfon wrote:
> Hey Corinna.
> 
> On Wed, Jun 7, 2023 at 12:06 PM Corinna Vinschen
> <corinna-cygwin@cygwin.com> wrote:
> > Hmm, the comparisons would have to check for XATTR_NAME_MAX anyway,
> > so maybe inlining is cleaner in this case.
> 
> Please have a look at the updated and attached patches.
> 
> Thanks,
> Philippe.

Oh well. Now that I see it in real life, my idea to use the entire
expression inline wasn't that great, it seems... 

I didn't want to keep MAX_EA_NAME_LEN because now that we have an
official name for the value, having an unofficial name using a different
naming convention is a bit weird.

On the other hand, having a macro for the expression certainly looks
much cleaner.  Also, only one place to change (should a change ever be
necessary).

Sorry about that.

What do you think about something like _XATTR_NAME_MAX_ONDISK_?

I can also just push the patches and we discuss this further afterwards,
your call.


Thanks,
Corinna



> @@ -55,7 +54,7 @@ read_ea (HANDLE hdl, path_conv &pc, const char *name, char *value, size_t size)
>       returns the last EA entry of the file infinitely.  Even utilizing the
>       optional EaIndex only helps marginally.  If you use that, the last
>       EA in the file is returned twice. */
> -  char lastname[MAX_EA_NAME_LEN];
> +  char lastname[(XATTR_NAME_MAX + 1 - strlen("user."))];
>  
>    __try
>      {
> @@ -95,7 +94,7 @@ read_ea (HANDLE hdl, path_conv &pc, const char *name, char *value, size_t size)
>  	      __leave;
>  	    }
>  
> -	  if ((nlen = strlen (name)) >= MAX_EA_NAME_LEN)
> +	  if ((nlen = strlen (name)) >= (XATTR_NAME_MAX + 1 - strlen("user.")))
>  	    {
>  	      set_errno (EINVAL);
>  	      __leave;
> @@ -197,7 +196,7 @@ read_ea (HANDLE hdl, path_conv &pc, const char *name, char *value, size_t size)
>  		  /* For compatibility with Linux, we always prepend "user." to
>  		     the attribute name, so effectively we only support user
>  		     attributes from a application point of view. */
> -		  char tmpbuf[MAX_EA_NAME_LEN * 2];
> +		  char tmpbuf[(XATTR_NAME_MAX + 1 - strlen("user.")) * 2];
>  		  char *tp = stpcpy (tmpbuf, "user.");
>  		  stpcpy (tp, fea->EaName);
>  		  /* NTFS stores all EA names in uppercase unfortunately.  To
> @@ -297,7 +296,7 @@ write_ea (HANDLE hdl, path_conv &pc, const char *name, const char *value,
>        /* Skip "user." prefix. */
>        name += 5;
>  
> -      if ((nlen = strlen (name)) >= MAX_EA_NAME_LEN)
> +      if ((nlen = strlen (name)) >= (XATTR_NAME_MAX + 1 - strlen("user.")))
>  	{
>  	  set_errno (EINVAL);
>  	  __leave;
> -- 
> 2.40.1
> 


  reply	other threads:[~2023-06-16 15:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAN+za=MhQdD2mzYxqVAm9ZwBUBKsyPiH+9T5xfGXtgxq1X1LAA@mail.gmail.com>
2023-05-30 20:04 ` Brian Inglis
2023-06-05 19:05   ` Corinna Vinschen
2023-06-06  1:04     ` Philippe Cerfon
2023-06-06  1:14     ` Philippe Cerfon
2023-06-06 13:28       ` Corinna Vinschen
2023-06-06 15:17         ` Philippe Cerfon
2023-06-07 10:06           ` Corinna Vinschen
2023-06-16 14:09             ` Philippe Cerfon
2023-06-16 15:04               ` Corinna Vinschen [this message]
2023-06-16 15:43                 ` Philippe Cerfon
2023-06-16 19:49                   ` Corinna Vinschen
2023-06-16 19:52                     ` Philippe Cerfon
2023-06-19  8:53                       ` Corinna Vinschen

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=ZIx55su+P5zInrqa@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin-patches@cygwin.com \
    --cc=philcerf@gmail.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.
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 read-only IMAP folder(s) and NNTP newsgroup(s).