diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/cgroup.c | 1 | ||||
| -rw-r--r-- | kernel/kmod.c | 12 | ||||
| -rw-r--r-- | kernel/signal.c | 3 |
3 files changed, 9 insertions, 7 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 0249f4be9b5c..1fbcc748044a 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
| @@ -2468,7 +2468,6 @@ static struct cgroup_pidlist *cgroup_pidlist_find(struct cgroup *cgrp, | |||
| 2468 | /* make sure l doesn't vanish out from under us */ | 2468 | /* make sure l doesn't vanish out from under us */ |
| 2469 | down_write(&l->mutex); | 2469 | down_write(&l->mutex); |
| 2470 | mutex_unlock(&cgrp->pidlist_mutex); | 2470 | mutex_unlock(&cgrp->pidlist_mutex); |
| 2471 | l->use_count++; | ||
| 2472 | return l; | 2471 | return l; |
| 2473 | } | 2472 | } |
| 2474 | } | 2473 | } |
diff --git a/kernel/kmod.c b/kernel/kmod.c index 25b103190364..bf0e231d9702 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c | |||
| @@ -520,13 +520,15 @@ int call_usermodehelper_pipe(char *path, char **argv, char **envp, | |||
| 520 | return -ENOMEM; | 520 | return -ENOMEM; |
| 521 | 521 | ||
| 522 | ret = call_usermodehelper_stdinpipe(sub_info, filp); | 522 | ret = call_usermodehelper_stdinpipe(sub_info, filp); |
| 523 | if (ret < 0) | 523 | if (ret < 0) { |
| 524 | goto out; | 524 | call_usermodehelper_freeinfo(sub_info); |
| 525 | return ret; | ||
| 526 | } | ||
| 525 | 527 | ||
| 526 | return call_usermodehelper_exec(sub_info, UMH_WAIT_EXEC); | 528 | ret = call_usermodehelper_exec(sub_info, UMH_WAIT_EXEC); |
| 529 | if (ret < 0) /* Failed to execute helper, close pipe */ | ||
| 530 | filp_close(*filp, NULL); | ||
| 527 | 531 | ||
| 528 | out: | ||
| 529 | call_usermodehelper_freeinfo(sub_info); | ||
| 530 | return ret; | 532 | return ret; |
| 531 | } | 533 | } |
| 532 | EXPORT_SYMBOL(call_usermodehelper_pipe); | 534 | EXPORT_SYMBOL(call_usermodehelper_pipe); |
diff --git a/kernel/signal.c b/kernel/signal.c index d09692b40376..934ae5e687b9 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
| @@ -979,7 +979,8 @@ static void print_fatal_signal(struct pt_regs *regs, int signr) | |||
| 979 | for (i = 0; i < 16; i++) { | 979 | for (i = 0; i < 16; i++) { |
| 980 | unsigned char insn; | 980 | unsigned char insn; |
| 981 | 981 | ||
| 982 | __get_user(insn, (unsigned char *)(regs->ip + i)); | 982 | if (get_user(insn, (unsigned char *)(regs->ip + i))) |
| 983 | break; | ||
| 983 | printk("%02x ", insn); | 984 | printk("%02x ", insn); |
| 984 | } | 985 | } |
| 985 | } | 986 | } |
