Re: [patch] setxattr.2: Add ERANGE to 'ERRORS' section

From: Michael Kerrisk (man-pages)
Date: Thu Aug 01 2019 - 13:40:41 EST


Hello Finn,

On 7/31/19 9:53 PM, Finn O'Leary wrote:
> Hi,
>
> Both the Ext2 filesystem handler and the Ext4 filesystem handler will
> return the ERANGE error code. Ext2 will return it if the name or value
> is
> too long to be able to be stored, Ext4 will return it if the name is too
> long. For reference, the relevant files/lines (with excerpts) are:
>
> fs/ext2/xattr.c: lines 394 to 396 in ext2_xattr_set
>> 394 name_len = strlen(name);
>> 395 if (name_len > 255 || value_len > sb->s_blocksize)
>> 396 return -ERANGE;
>
> fs/ext4/xattr.c: lines 2317 to 2318 in ext4_xattr_set_handle
>> 2317 if (strlen(name) > 255)
>> 2318 return -ERANGE;
>
> Other filesystems also return this code:
>
> xfs/libxfs/xfs_attr.h: lines 53 to 55
>> * The maximum size (into the kernel or returned from the kernel) of an
>> * attribute value or the buffer used for an attr_list() call. Larger
>> * sizes will result in an ERANGE return code.
>
> It's possible that more filesystem handlers do this, a cursory grep
> shows
> that most of the filesystem xattr handler files mention ERANGE in some
> form. A suggested patch is below (I'm not 100% sure on the wording
> through).

Thanks. Patch applied, and I've done some rewording.

Cheers,

Michael



--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/