On 2020/6/4 下午2:18, Herbert Xu wrote:
On Thu, Jun 04, 2020 at 02:10:37PM +0800, Zhangfei Gao wrote:
Should this even allow truncation? Perhaps it'd be better to fail
in case of an overrun?
I think we do not need consider overrun, since it at most copy size-1 bytes
to dest.
From the manual: strlcpy()
This function is similar to strncpy(), but it copies at most
size-1 bytes to dest, always adds a terminating null
byte,
And simple tested with smaller SIZE of interface.name, only SIZE-1 is
copied, so it is safe.
-#define UACCE_MAX_NAME_SIZE 64
+#define UACCE_MAX_NAME_SIZE 4
That's not what I meant. As it is if you do exceed the limit the
name is silently truncated. Wouldn't it be better to fail the
allocation instead?
I think it is fine.
1. Currently the name size is 64, bigger enough.
Simply grep in driver name, 64 should be enough.
We can make it larger when there is a request.
2. it does not matter what the name is, since it is just an interface.
cat /sys/class/uacce/hisi_zip-0/flags
cat /sys/class/uacce/his-0/flags
should be both fine to app only they can be distinguished.
3. It maybe a hard restriction to fail just because of a long name.
What do you think.
Thanks