Page MenuHomeFreeBSD

D22379.id.diff
No OneTemporary

D22379.id.diff

Index: head/sys/kern/kern_exec.c
===================================================================
--- head/sys/kern/kern_exec.c
+++ head/sys/kern/kern_exec.c
@@ -361,7 +361,6 @@
struct ucred *oldcred;
struct uidinfo *euip = NULL;
register_t *stack_base;
- int error, i;
struct image_params image_params, *imgp;
struct vattr attr;
int (*img_first)(struct image_params *);
@@ -380,6 +379,8 @@
#ifdef HWPMC_HOOKS
struct pmckern_procexec pe;
#endif
+ int error, i, orig_osrel;
+ uint32_t orig_fctl0;
static const char fexecv_proc_title[] = "(fexecv)";
imgp = &image_params;
@@ -405,6 +406,8 @@
imgp->attr = &attr;
imgp->args = args;
oldcred = p->p_ucred;
+ orig_osrel = p->p_osrel;
+ orig_fctl0 = p->p_fctl0;
#ifdef MAC
error = mac_execve_enter(imgp, mac_p);
@@ -868,6 +871,11 @@
SDT_PROBE1(proc, , , exec__success, args->fname);
exec_fail_dealloc:
+ if (error != 0) {
+ p->p_osrel = orig_osrel;
+ p->p_fctl0 = orig_fctl0;
+ }
+
if (imgp->firstpage != NULL)
exec_unmap_first_page(imgp);

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 11, 11:52 PM (19 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29556405
Default Alt Text
D22379.id.diff (1 KB)

Event Timeline