History

kernel/sys.c: avoid copying possible padding bytes in copy_to_user

Initialization is not guaranteed to zero padding bytes so use an explicit memset instead to avoid leaking any kernel content in any possible padding bytes.

Joe Perches committed 6 years ago

Commit 5e1aada1 parent ef70eff1 file · +3 −1Browse files

Showing the changes to kernel/sys.c (1 of 1 file). Show all

Unified · Split

kernel/sys.c+3−1
@@ -1279,11 +1279,13 @@ SYSCALL_DEFINE1(uname, struct old_utsname __user *, name) · 1278 unmodified lines
12791279
12801280 SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
12811281 {
1282− struct oldold_utsname tmp = {};
1282+ struct oldold_utsname tmp;
12831283
12841284 if (!name)
12851285 return -EFAULT;
12861286
1287+ memset(&tmp, 0, sizeof(tmp));
1288+
12871289 down_read(&uts_sem);
12881290 memcpy(&tmp.sysname, &utsname()->sysname, __OLD_UTS_LEN);
12891291 memcpy(&tmp.nodename, &utsname()->nodename, __OLD_UTS_LEN);