X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=src%2Fmisc-progs%2Fsambactrl.c;fp=src%2Fmisc-progs%2Fsambactrl.c;h=eee396e7e61ea4626b05d52f88a27710374d633e;hp=adcfe4628c7ea1561a86ad7175c9fd893e57537c;hb=64883513d5940c17afe2fcf1d876feae61921ea9;hpb=8e4b2125ccfd005c30adb9c568f2103bbc36bdb7 diff --git a/src/misc-progs/sambactrl.c b/src/misc-progs/sambactrl.c index adcfe4628c..eee396e7e6 100644 --- a/src/misc-progs/sambactrl.c +++ b/src/misc-progs/sambactrl.c @@ -20,14 +20,29 @@ int main(int argc, char *argv[]) { return 1; } else if (strcmp(argv[1], "smbuserdisable") == 0) { + if (!is_valid_argument_alnum(argv[2])) { + fprintf(stderr, "Invalid username '%s'\n", argv[2]); + exit(2); + } + snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -d %s >/dev/null", argv[2]); safe_system(command); } else if (strcmp(argv[1], "smbuserenable") == 0) { + if (!is_valid_argument_alnum(argv[2])) { + fprintf(stderr, "Invalid username '%s'\n", argv[2]); + exit(2); + } + snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -e %s >/dev/null", argv[2]); safe_system(command); } else if (strcmp(argv[1], "smbuserdelete") == 0) { + if (!is_valid_argument_alnum(argv[2])) { + fprintf(stderr, "Invalid username '%s'\n", argv[2]); + exit(2); + } + snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -x %s >/dev/null", argv[2]); safe_system(command); @@ -56,6 +71,11 @@ int main(int argc, char *argv[]) { safe_system(command); } else if (strcmp(argv[1], "smbuseradd") == 0) { + if (!is_valid_argument_alnum(argv[2])) { + fprintf(stderr, "Invalid username '%s'\n", argv[2]); + exit(2); + } + snprintf(command, BUFFER_SIZE-1, "/usr/sbin/groupadd sambauser >/dev/null"); safe_system(command); @@ -69,6 +89,11 @@ int main(int argc, char *argv[]) { safe_system(command); } else if (strcmp(argv[1], "smbchangepw") == 0) { + if (!is_valid_argument_alnum(argv[2])) { + fprintf(stderr, "Invalid username '%s'\n", argv[2]); + exit(2); + } + snprintf(command, BUFFER_SIZE-1, "echo %s:%s | chpasswd", argv[2], argv[3]); safe_system(command);