chiark
/
gitweb
/
~ian
/
secnet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Provide text2iaddr.
[secnet.git]
/
slip.c
diff --git
a/slip.c
b/slip.c
index 7d060c371881cfeb8c9e28ac78fe0c0476bc2a9c..d8b32d8dbda79b5ad8ad4432be2adb4d3a166a10 100644
(file)
--- a/
slip.c
+++ b/
slip.c
@@
-272,10
+272,9
@@
static void userv_entry(void *sst)
static void userv_invoke_userv(struct userv *st)
{
static void userv_invoke_userv(struct userv *st)
{
- struct userv_entry_rec
*er
;
+ struct userv_entry_rec
er[1]
;
int c_stdin[2];
int c_stdout[2];
int c_stdin[2];
int c_stdout[2];
- string_t addrs;
string_t nets;
string_t s;
struct netlink_client *r;
string_t nets;
string_t s;
struct netlink_client *r;
@@
-291,8
+290,8
@@
static void userv_invoke_userv(struct userv *st)
/* This is where we actually invoke userv - all the networks we'll
be using should already have been registered. */
/* This is where we actually invoke userv - all the networks we'll
be using should already have been registered. */
-
addrs=safe_malloc(512,"userv_invoke_userv:addrs")
;
- snprintf(addrs,
512
,"%s,%s,%d,slip",
+
char addrs[512]
;
+ snprintf(addrs,
sizeof(addrs)
,"%s,%s,%d,slip",
ipaddr_to_string(st->slip.nl.local_address),
ipaddr_to_string(st->slip.nl.secnet_address),st->slip.nl.mtu);
ipaddr_to_string(st->slip.nl.local_address),
ipaddr_to_string(st->slip.nl.secnet_address),st->slip.nl.mtu);
@@
-314,7
+313,6
@@
static void userv_invoke_userv(struct userv *st)
s=subnet_to_string(snets->list[i]);
strcat(nets,s);
strcat(nets,",");
s=subnet_to_string(snets->list[i]);
strcat(nets,s);
strcat(nets,",");
- free(s);
}
nets[strlen(nets)-1]=0;
subnet_list_free(snets);
}
nets[strlen(nets)-1]=0;
subnet_list_free(snets);
@@
-330,8
+328,6
@@
static void userv_invoke_userv(struct userv *st)
st->txfd=c_stdin[1];
st->rxfd=c_stdout[0];
st->txfd=c_stdin[1];
st->rxfd=c_stdout[0];
- er=safe_malloc(sizeof(*r),"userv_invoke_userv: er");
-
er->in=c_stdin[0];
er->out=c_stdout[1];
/* The arguments are:
er->in=c_stdin[0];
er->out=c_stdout[1];
/* The arguments are:
@@
-340,7
+336,8
@@
static void userv_invoke_userv(struct userv *st)
service-name
local-addr,secnet-addr,mtu,protocol
route1,route2,... */
service-name
local-addr,secnet-addr,mtu,protocol
route1,route2,... */
- er->argv=safe_malloc(sizeof(*er->argv)*6,"userv_invoke_userv:argv");
+ const char *er_argv[6];
+ er->argv=er_argv;
er->argv[0]=st->userv_path;
er->argv[1]=st->service_user;
er->argv[2]=st->service_name;
er->argv[0]=st->userv_path;
er->argv[1]=st->service_user;
er->argv[2]=st->service_name;
@@
-353,9
+350,6
@@
static void userv_invoke_userv(struct userv *st)
er, st, st->slip.nl.name);
close(er->in);
close(er->out);
er, st, st->slip.nl.name);
close(er->in);
close(er->out);
- free(er->argv);
- free(er);
- free(addrs);
free(nets);
Message(M_INFO,"%s: userv-ipif pid is %d\n",st->slip.nl.name,st->pid);
/* Read a single character from the pipe to confirm userv-ipif is
free(nets);
Message(M_INFO,"%s: userv-ipif pid is %d\n",st->slip.nl.name,st->pid);
/* Read a single character from the pipe to confirm userv-ipif is