mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-19 11:04:00 +08:00
fs/9p: avoid debug OOPS when reading a long symlink
Reading a symlink longer than the given buffer, a p9_debug use would try to print the link name (not NUL-terminated) using a %s format. Use %.*s instead, and replace the strncpy+strnlen with functionally equivalent strlen+memcpy. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:
parent
4cbe5a555f
commit
ba413ab2cc
@ -1276,12 +1276,12 @@ static int v9fs_readlink(struct dentry *dentry, char *buffer, int buflen)
|
||||
}
|
||||
|
||||
/* copy extension buffer into buffer */
|
||||
strncpy(buffer, st->extension, buflen);
|
||||
retval = min(strlen(st->extension)+1, (size_t)buflen);
|
||||
memcpy(buffer, st->extension, retval);
|
||||
|
||||
p9_debug(P9_DEBUG_VFS, "%s -> %s (%s)\n",
|
||||
dentry->d_name.name, st->extension, buffer);
|
||||
p9_debug(P9_DEBUG_VFS, "%s -> %s (%.*s)\n",
|
||||
dentry->d_name.name, st->extension, buflen, buffer);
|
||||
|
||||
retval = strnlen(buffer, buflen);
|
||||
done:
|
||||
p9stat_free(st);
|
||||
kfree(st);
|
||||
|
Loading…
Reference in New Issue
Block a user