Darrick J. Wong [off-list ref] wrote:
quoted
+ 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.
quoted
+ 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.
quoted
+#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