View | Details | Raw Unified | Return to bug 13355 | Differences between
and this patch

Collapse All | Expand All

(-)a/fs/exec.c (-2 / +8 lines)
Lines 54-59 Link Here
54
#include <linux/kmod.h>
54
#include <linux/kmod.h>
55
#include <linux/fsnotify.h>
55
#include <linux/fsnotify.h>
56
#include <linux/fs_struct.h>
56
#include <linux/fs_struct.h>
57
#include <linux/pipe_fs_i.h>
57
58
58
#include <asm/uaccess.h>
59
#include <asm/uaccess.h>
59
#include <asm/mmu_context.h>
60
#include <asm/mmu_context.h>
Lines 1718-1723 void do_coredump(long signr, int exit_code, struct pt_regs *regs) Link Here
1718
	char **helper_argv = NULL;
1719
	char **helper_argv = NULL;
1719
	int helper_argc = 0;
1720
	int helper_argc = 0;
1720
	char *delimit;
1721
	char *delimit;
1722
	pid_t pid = 0;
1721
1723
1722
	audit_core_dumps(signr);
1724
	audit_core_dumps(signr);
1723
1725
Lines 1808-1815 void do_coredump(long signr, int exit_code, struct pt_regs *regs) Link Here
1808
		core_limit = RLIM_INFINITY;
1810
		core_limit = RLIM_INFINITY;
1809
1811
1810
		/* SIGPIPE can happen, but it's just never processed */
1812
		/* SIGPIPE can happen, but it's just never processed */
1811
 		if (call_usermodehelper_pipe(corename+1, helper_argv, NULL,
1813
 		pid = call_usermodehelper_pipe(corename+1, helper_argv, NULL,
1812
				&file)) {
1814
				&file);
1815
		if (pid < 0) {
1813
 			printk(KERN_INFO "Core dump to %s pipe failed\n",
1816
 			printk(KERN_INFO "Core dump to %s pipe failed\n",
1814
			       corename);
1817
			       corename);
1815
 			goto fail_unlock;
1818
 			goto fail_unlock;
Lines 1845-1850 void do_coredump(long signr, int exit_code, struct pt_regs *regs) Link Here
1845
1848
1846
	retval = binfmt->core_dump(signr, regs, file, core_limit);
1849
	retval = binfmt->core_dump(signr, regs, file, core_limit);
1847
1850
1851
	if (ispipe) 
1852
		sys_wait4(pid, NULL, 0, NULL);
1853
		
1848
	if (retval)
1854
	if (retval)
1849
		current->signal->group_exit_code |= 0x80;
1855
		current->signal->group_exit_code |= 0x80;
1850
close_fail:
1856
close_fail:
(-)a/kernel/kmod.c (-1 / +2 lines)
Lines 257-262 static void __call_usermodehelper(struct work_struct *work) Link Here
257
		pid = kernel_thread(____call_usermodehelper, sub_info,
257
		pid = kernel_thread(____call_usermodehelper, sub_info,
258
				    CLONE_VFORK | SIGCHLD);
258
				    CLONE_VFORK | SIGCHLD);
259
259
260
	sub_info->retval = pid;
261
260
	switch (wait) {
262
	switch (wait) {
261
	case UMH_NO_WAIT:
263
	case UMH_NO_WAIT:
262
		break;
264
		break;
Lines 264-270 static void __call_usermodehelper(struct work_struct *work) Link Here
264
	case UMH_WAIT_PROC:
266
	case UMH_WAIT_PROC:
265
		if (pid > 0)
267
		if (pid > 0)
266
			break;
268
			break;
267
		sub_info->retval = pid;
268
		/* FALLTHROUGH */
269
		/* FALLTHROUGH */
269
270
270
	case UMH_WAIT_EXEC:
271
	case UMH_WAIT_EXEC:

Return to bug 13355