chiark
/
gitweb
/
~ian
/
secnet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NEW etc.: Use NEW in all obvious places
[secnet.git]
/
slip.c
diff --git
a/slip.c
b/slip.c
index 4c0cac12ee635685ea9e7a1085cd884767cb2d51..a23675253c603fb580c81ae0954b8e7943d1128f 100644
(file)
--- a/
slip.c
+++ b/
slip.c
@@
-273,8
+273,6
@@
static void userv_entry(void *sst)
dup2(st->out,1);
setsid();
dup2(st->out,1);
setsid();
- /* XXX We really should strdup() all of argv[] but because we'll just
- exit anyway if execvp() fails it doesn't seem worth bothering. */
execvp(st->path,(char *const*)st->argv);
perror("userv-entry: execvp()");
exit(1);
execvp(st->path,(char *const*)st->argv);
perror("userv-entry: execvp()");
exit(1);
@@
-385,6
+383,9
@@
static void userv_invoke_userv(struct userv *st)
}
setnonblock(st->txfd);
setnonblock(st->rxfd);
}
setnonblock(st->txfd);
setnonblock(st->rxfd);
+
+ add_hook(PHASE_CHILDPERSIST,childpersist_closefd_hook,&st->txfd);
+ add_hook(PHASE_CHILDPERSIST,childpersist_closefd_hook,&st->rxfd);
}
static void userv_kill_userv(struct userv *st)
}
static void userv_kill_userv(struct userv *st)
@@
-418,7
+419,7
@@
static list_t *userv_apply(closure_t *self, struct cloc loc, dict_t *context,
item_t *item;
dict_t *dict;
item_t *item;
dict_t *dict;
-
st=safe_malloc(sizeof(*st),"userv_apply"
);
+
NEW(st
);
/* First parameter must be a dict */
item=list_elem(args,0);
/* First parameter must be a dict */
item=list_elem(args,0);