Possible error in debugfs/file.c
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?
land.ho87@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
Please also see line 596.. file->private_data is buf and that is a string terminated by NULL. thanks sudip On Dec 2, 2014 9:45 PM, <land.ho87@gmail.com> 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.
Is this a legitimate criticism?
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (3)
-
Bjørn Mork -
land.ho87@gmail.com -
Sudip Mukherjee