diff options
| -rw-r--r-- | fs/fat/namei_vfat.c | 6 | ||||
| -rw-r--r-- | fs/proc/base.c | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c index c1ef50154868..6fcc7e71fbaa 100644 --- a/fs/fat/namei_vfat.c +++ b/fs/fat/namei_vfat.c | |||
| @@ -309,7 +309,7 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls, | |||
| 309 | { | 309 | { |
| 310 | struct fat_mount_options *opts = &MSDOS_SB(dir->i_sb)->options; | 310 | struct fat_mount_options *opts = &MSDOS_SB(dir->i_sb)->options; |
| 311 | wchar_t *ip, *ext_start, *end, *name_start; | 311 | wchar_t *ip, *ext_start, *end, *name_start; |
| 312 | unsigned char base[9], ext[4], buf[8], *p; | 312 | unsigned char base[9], ext[4], buf[5], *p; |
| 313 | unsigned char charbuf[NLS_MAX_CHARSET_SIZE]; | 313 | unsigned char charbuf[NLS_MAX_CHARSET_SIZE]; |
| 314 | int chl, chi; | 314 | int chl, chi; |
| 315 | int sz = 0, extlen, baselen, i, numtail_baselen, numtail2_baselen; | 315 | int sz = 0, extlen, baselen, i, numtail_baselen, numtail2_baselen; |
| @@ -467,7 +467,7 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls, | |||
| 467 | return 0; | 467 | return 0; |
| 468 | } | 468 | } |
| 469 | 469 | ||
| 470 | i = jiffies & 0xffff; | 470 | i = jiffies; |
| 471 | sz = (jiffies >> 16) & 0x7; | 471 | sz = (jiffies >> 16) & 0x7; |
| 472 | if (baselen > 2) { | 472 | if (baselen > 2) { |
| 473 | baselen = numtail2_baselen; | 473 | baselen = numtail2_baselen; |
| @@ -476,7 +476,7 @@ static int vfat_create_shortname(struct inode *dir, struct nls_table *nls, | |||
| 476 | name_res[baselen + 4] = '~'; | 476 | name_res[baselen + 4] = '~'; |
| 477 | name_res[baselen + 5] = '1' + sz; | 477 | name_res[baselen + 5] = '1' + sz; |
| 478 | while (1) { | 478 | while (1) { |
| 479 | sprintf(buf, "%04X", i); | 479 | snprintf(buf, sizeof(buf), "%04X", i & 0xffff); |
| 480 | memcpy(&name_res[baselen], buf, 4); | 480 | memcpy(&name_res[baselen], buf, 4); |
| 481 | if (vfat_find_form(dir, name_res) < 0) | 481 | if (vfat_find_form(dir, name_res) < 0) |
| 482 | break; | 482 | break; |
diff --git a/fs/proc/base.c b/fs/proc/base.c index a7310841c831..b1f6e62773d3 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
| @@ -442,12 +442,13 @@ static const struct file_operations proc_lstats_operations = { | |||
| 442 | unsigned long badness(struct task_struct *p, unsigned long uptime); | 442 | unsigned long badness(struct task_struct *p, unsigned long uptime); |
| 443 | static int proc_oom_score(struct task_struct *task, char *buffer) | 443 | static int proc_oom_score(struct task_struct *task, char *buffer) |
| 444 | { | 444 | { |
| 445 | unsigned long points; | 445 | unsigned long points = 0; |
| 446 | struct timespec uptime; | 446 | struct timespec uptime; |
| 447 | 447 | ||
| 448 | do_posix_clock_monotonic_gettime(&uptime); | 448 | do_posix_clock_monotonic_gettime(&uptime); |
| 449 | read_lock(&tasklist_lock); | 449 | read_lock(&tasklist_lock); |
| 450 | points = badness(task->group_leader, uptime.tv_sec); | 450 | if (pid_alive(task)) |
| 451 | points = badness(task, uptime.tv_sec); | ||
| 451 | read_unlock(&tasklist_lock); | 452 | read_unlock(&tasklist_lock); |
| 452 | return sprintf(buffer, "%lu\n", points); | 453 | return sprintf(buffer, "%lu\n", points); |
| 453 | } | 454 | } |
