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.
Showing the changes to kernel (1 of 1 file). Show all
Unified · Split
| @@ -1279,11 +1279,13 @@ SYSCALL_DEFINE1(uname, struct old_utsname __user *, name) · 1278 unmodified lines | ||
| 1279 | 1279 | |
| 1280 | 1280 | SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name) |
| 1281 | 1281 | { |
| 1282 | − struct oldold_utsname tmp = {}; | |
| 1282 | + struct oldold_utsname tmp; | |
| 1283 | 1283 | |
| 1284 | 1284 | if (!name) |
| 1285 | 1285 | return -EFAULT; |
| 1286 | 1286 | |
| 1287 | + memset(&tmp, 0, sizeof(tmp)); | |
| 1288 | + | |
| 1287 | 1289 | down_read(&uts_sem); |
| 1288 | 1290 | memcpy(&tmp.sysname, &utsname()->sysname, __OLD_UTS_LEN); |
| 1289 | 1291 | memcpy(&tmp.nodename, &utsname()->nodename, __OLD_UTS_LEN); |