* Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
*/
-#include "busybox.h"
+#include "libbb.h"
#ifndef CRONTABS
#define CRONTABS "/var/spool/cron/crontabs"
static int GetReplaceStream(const char *user, const char *file);
static int ChangeUser(const char *user, short dochdir);
+int crontab_main(int ac, char **av);
int crontab_main(int ac, char **av)
{
enum { NONE, EDIT, LIST, REPLACE, DELETE } option = NONE;
/*
* CHILD - change user and run editor
*/
- char *ptr;
- char visual[1024];
+ const char *ptr;
if (ChangeUser(user, 1) < 0)
exit(0);
if (ptr == NULL || strlen(ptr) > 256)
ptr = PATH_VI;
- snprintf(visual, sizeof(visual), "%s %s", ptr, file);
- execl(DEFAULT_SHELL, DEFAULT_SHELL, "-c", visual, NULL);
- perror("exec");
- exit(0);
+ ptr = xasprintf("%s %s", ptr, file);
+ execl(DEFAULT_SHELL, DEFAULT_SHELL, "-c", ptr, NULL);
+ bb_perror_msg_and_die("exec");
}
if (pid < 0) {
/*