Nmap Development mailing list archives
[PATCH] Use memset() instead of looping when "quashing" argv
From: Kris Katterjohn <kjak () ispwest com>
Date: Fri, 15 Sep 2006 19:51:03 -0500
The attached patch uses memset() instead of looping in nmap.cc. It's a diff against 4.20ALPHA7. Thanks, Kris Katterjohn
--- x/nmap.cc 2006-09-11 22:33:34.000000000 -0500
+++ y/nmap.cc 2006-09-15 19:45:10.000000000 -0500
@@ -437,7 +437,6 @@ int nmap_main(int argc, char *argv[]) {
int i, arg;
long l;
unsigned int targetno;
- size_t j, argvlen;
FILE *inputfd = NULL, *excludefd = NULL;
char *host_spec = NULL, *exclude_spec = NULL;
short fastscan=0, randomize=1;
@@ -1341,16 +1340,13 @@ int nmap_main(int argc, char *argv[]) {
/* more fakeargv junk, BTW malloc'ing extra space in argv[0] doesn't work */
if (quashargv) {
- argvlen = strlen(argv[0]);
- if (argvlen < strlen(FAKE_ARGV))
+ size_t fakeargvlen = strlen(FAKE_ARGV), argvlen = strlen(argv[0]);
+ if (argvlen < fakeargvlen)
fatal("If you want me to fake your argv, you need to call the program with a longer name. Try the full
pathname, or rename it fyodorssuperdedouperportscanner");
- strncpy(argv[0], FAKE_ARGV, strlen(FAKE_ARGV));
- for(j = strlen(FAKE_ARGV); j < argvlen; j++) argv[0][j] = '\0';
- for(i=1; i < argc; i++) {
- argvlen = strlen(argv[i]);
- for(j=0; j <= argvlen; j++)
- argv[i][j] = '\0';
- }
+ strncpy(argv[0], FAKE_ARGV, fakeargvlen);
+ memset(&argv[0][fakeargvlen], '\0', strlen(&argv[0][fakeargvlen]));
+ for(i=1; i < argc; i++)
+ memset(argv[i], '\0', strlen(argv[i]));
}
#if defined(HAVE_SIGNAL) && defined(SIGPIPE)
_______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://SecLists.Org
Current thread:
- [PATCH] Use memset() instead of looping when "quashing" argv Kris Katterjohn (Sep 15)
