Skip to contentSkip to conversation

Possible error in debugfs/file.c

DISCUSSION land.ho87 at gmail.com 3 participants 3 messages Dec 2, 2014

lore
Share & tools
lore
#0 lore raw

I'm just reading the kernel source and came across this which doesn't look quite right to me:
616 size_t size = strlen(file->private_data);

strlen is used here when the pointer points to type:
567 struct array_data {
568 void *array;
569 u32 elements;
570 };

I think line 616 should probably be something like:
size_t size = file->private_data.elements*sizeof(u32);

I think strlen would terminate incorrectly on any null byte, and is unnecessary since the data is already counted.

Is this a legitimate criticism?

#1 lore raw
Quoted 8 lines · land.ho87 at gmail.com writes:

I'm just reading the kernel source and came across this which doesn't look quite right to me:
616 size_t size = strlen(file->private_data);

strlen is used here when the pointer points to type:
567 struct array_data {
568 void *array;
569 u32 elements;
570 };

No, it doesn't. file->private_data points to a string buffer allocated in u32_array_open() and filled with a string representation of the struct array_data, using u32_format_array().

So calling strlen() on it is perfectly valid and reasonable.

Bj?rn

#2 lore raw
In reply to land.ho87 at gmail.com

Please also see line 596..
file->private_data is buf and that is a string terminated by NULL.

thanks
sudip

Quoted 17 lines · On Dec 2, 2014 9:45 PM, <[email protected]> wrote:

I'm just reading the kernel source and came across this which doesn't look quite right to me:
616 size_t size = strlen(file->private_data);

strlen is used here when the pointer points to type:
567 struct array_data {
568 void *array;
569 u32 elements;
570 };

I think line 616 should probably be something like:
size_t size = file->private_data.elements*sizeof(u32);

I think strlen would terminate incorrectly on any null byte, and is unnecessary
since the data is already counted.

Quoted 7 lines

Is this a legitimate criticism?

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20141202/cbffc910/attachment.html