Darrick J. Wong <darrick.wong@xxxxxxxxxx> wrote: > > + memcpy(ctx->buffer, es->s_volume_name, sizeof(es->s_volume_name)); > > Shouldn't this be checking that ctx->buffer is large enough to hold > s_volume_name? Well, the buffer is guaranteed to be 4KiB in size. > > + return strlen(ctx->buffer); > > s_volume_name is /not/ a null-terminated string if the label is 16 > characters long. And the buffer is precleared, so it's automatically NULL terminated. > > +#define FSINFO_ATTR_EXT4_TIMESTAMPS 0x400 /* Ext4 superblock timestamps */ > > I guess each filesystem gets ... 256 different attrs, and the third > nibble determines the namespace? No. Think of it as allocating namespace in 256-number blocks. That means there are 16 million of them. If a filesystem uses up an entire block, it can always allocate another one. I don't think it likely that we'll get sufficient filesystems to eat them all. David