Call pargs_drop() unconditionally in do_execve(), the function correctly

handles the NULL argument.
Make pargs_free() static.

MFC after:	1 week
This commit is contained in:
Konstantin Belousov 2008-07-25 11:55:32 +00:00
parent 96f1567fa7
commit 58e8af1bf5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=180799
3 changed files with 4 additions and 6 deletions

View File

@ -832,10 +832,8 @@ do_execve(td, args, mac_p)
crfree(tracecred);
#endif
vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY);
if (oldargs != NULL)
pargs_drop(oldargs);
if (newargs != NULL)
pargs_drop(newargs);
pargs_drop(oldargs);
pargs_drop(newargs);
if (oldsigacts != NULL)
sigacts_free(oldsigacts);

View File

@ -123,6 +123,7 @@ static int proc_ctor(void *mem, int size, void *arg, int flags);
static void proc_dtor(void *mem, int size, void *arg);
static int proc_init(void *mem, int size, int flags);
static void proc_fini(void *mem, int size);
static void pargs_free(struct pargs *pa);
/*
* Other process lists
@ -1177,7 +1178,7 @@ pargs_alloc(int len)
return (pa);
}
void
static void
pargs_free(struct pargs *pa)
{

View File

@ -797,7 +797,6 @@ int p_cansignal(struct thread *td, struct proc *p, int signum);
int p_canwait(struct thread *td, struct proc *p);
struct pargs *pargs_alloc(int len);
void pargs_drop(struct pargs *pa);
void pargs_free(struct pargs *pa);
void pargs_hold(struct pargs *pa);
void procinit(void);
void proc_linkup0(struct proc *p, struct thread *td);