diff options
-rw-r--r-- | networking/inetd.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/networking/inetd.c b/networking/inetd.c index ac42c5272..fb00c6cd7 100644 --- a/networking/inetd.c +++ b/networking/inetd.c | |||
@@ -778,6 +778,12 @@ static servtab_t *parse_one_line(void) | |||
778 | argc = 0; | 778 | argc = 0; |
779 | while ((arg = token[6+argc]) != NULL && argc < MAXARGV) | 779 | while ((arg = token[6+argc]) != NULL && argc < MAXARGV) |
780 | sep->se_argv[argc++] = xstrdup(arg); | 780 | sep->se_argv[argc++] = xstrdup(arg); |
781 | /* Some inetd.conf files have no argv's, not even argv[0]. | ||
782 | * Fix them up. | ||
783 | * (Technically, programs can be execed with argv[0] = NULL, | ||
784 | * but many programs do not like that at all) */ | ||
785 | if (argc == 0) | ||
786 | sep->se_argv[0] = xstrdup(sep->se_program); | ||
781 | 787 | ||
782 | /* catch mixups. "<service> stream udp ..." == wtf */ | 788 | /* catch mixups. "<service> stream udp ..." == wtf */ |
783 | if (sep->se_socktype == SOCK_STREAM) { | 789 | if (sep->se_socktype == SOCK_STREAM) { |