mirror of
https://github.com/sheumann/hush.git
synced 2025-01-17 16:30:26 +00:00
inetd: fix bug 1562 "inetd does not set argv[0] properly" (fix by IlyaPanfilov)
inetd: code shrink while at it function old new delta static.SOCK_xxx - 6 +6 getconfigent 1222 1123 -99 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/1 up/down: 6/-99) Total: -93 bytes text data bss dec hex filename 776099 974 9420 786493 c003d busybox_old 776020 974 9420 786414 bffee busybox_unstripped
This commit is contained in:
parent
9130340adf
commit
9d1afdb571
@ -708,18 +708,17 @@ static servtab_t *getconfigent(void)
|
|||||||
sep->se_service = xxstrdup(arg);
|
sep->se_service = xxstrdup(arg);
|
||||||
arg = skip(&cp);
|
arg = skip(&cp);
|
||||||
|
|
||||||
if (strcmp(arg, "stream") == 0)
|
{
|
||||||
sep->se_socktype = SOCK_STREAM;
|
static int8_t SOCK_xxx[] ALIGN1 = {
|
||||||
else if (strcmp(arg, "dgram") == 0)
|
-1,
|
||||||
sep->se_socktype = SOCK_DGRAM;
|
SOCK_STREAM, SOCK_DGRAM, SOCK_RDM,
|
||||||
else if (strcmp(arg, "rdm") == 0)
|
SOCK_SEQPACKET, SOCK_RAW
|
||||||
sep->se_socktype = SOCK_RDM;
|
};
|
||||||
else if (strcmp(arg, "seqpacket") == 0)
|
sep->se_socktype = SOCK_xxx[1 + index_in_strings(
|
||||||
sep->se_socktype = SOCK_SEQPACKET;
|
"stream""\0" "dgram""\0" "rdm""\0"
|
||||||
else if (strcmp(arg, "raw") == 0)
|
"seqpacket""\0" "raw""\0"
|
||||||
sep->se_socktype = SOCK_RAW;
|
, arg)];
|
||||||
else
|
}
|
||||||
sep->se_socktype = -1;
|
|
||||||
|
|
||||||
sep->se_proto = xxstrdup(skip(&cp));
|
sep->se_proto = xxstrdup(skip(&cp));
|
||||||
|
|
||||||
@ -787,10 +786,9 @@ static servtab_t *getconfigent(void)
|
|||||||
*arg++ = '\0';
|
*arg++ = '\0';
|
||||||
sep->se_group = xstrdup(arg);
|
sep->se_group = xstrdup(arg);
|
||||||
}
|
}
|
||||||
/* if ((arg = skip(&cp, 1)) == NULL) */
|
|
||||||
/* goto more; */
|
|
||||||
|
|
||||||
sep->se_server = xxstrdup(skip(&cp));
|
arg = skip(&cp);
|
||||||
|
sep->se_server = xxstrdup(arg);
|
||||||
if (strcmp(sep->se_server, "internal") == 0) {
|
if (strcmp(sep->se_server, "internal") == 0) {
|
||||||
#ifdef INETD_FEATURE_ENABLED
|
#ifdef INETD_FEATURE_ENABLED
|
||||||
const struct builtin *bi;
|
const struct builtin *bi;
|
||||||
@ -815,7 +813,7 @@ static servtab_t *getconfigent(void)
|
|||||||
sep->se_bi = NULL;
|
sep->se_bi = NULL;
|
||||||
#endif
|
#endif
|
||||||
argc = 0;
|
argc = 0;
|
||||||
for (arg = skip(&cp); cp; arg = skip(&cp)) {
|
for (; cp; arg = skip(&cp)) {
|
||||||
if (argc < MAXARGV)
|
if (argc < MAXARGV)
|
||||||
sep->se_argv[argc++] = xxstrdup(arg);
|
sep->se_argv[argc++] = xxstrdup(arg);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user