static void child () { int i; char *c, *g = (char *)malloc (strlen (tablist->getty) * sizeof (char)); close(0);close(1);close(2); setsid(); (void) open(tablist->dev,O_RDWR,0); (void) dup(0); (void) dup(0); /* find argc for getty */ strcpy (g, tablist->getty); i = 1; strtok1 (g, " \t\n"); while (strtok1 ((char *)0, " \t\n")) ++i; getty_argv = (char **)malloc (i * sizeof (char **)); strcpy (g, tablist->getty); i = 1; c = strtok1 (g, " \t\n"); *getty_argv = c; while (c = strtok1 ((char *)NULL, " \t\n")) *(getty_argv + i++) = c; free_ttytab (tablist0); execve (*getty_argv, getty_argv, envp); sleep (GETTY_RETRY_DLAY); /* don't hog system */ _exit (0); }
static uint8_t populate_airplay_list(char *list[], char *string) { int i; char *tok; for ((i = 0, tok = strtok1(string, TOKEN)); (tok != NULL) && (i < MAX_AP_DEVICES); (i++, tok = strtok1(NULL, TOKEN))) { list[i] = malloc(strlen(tok) + 1); strcpy(list[i], tok); } return i; }