From: Scott Worley Date: Fri, 4 Apr 2014 08:38:20 +0000 (-0700) Subject: Don't copy the device argument X-Git-Tag: v1.0.0~5 X-Git-Url: http://git.scottworley.com/keystroke-timestamps/commitdiff_plain/7c9f27edf74be0155ae6a1682fdc6a8555846c83?ds=sidebyside;hp=922ce0bc5c364f1eb9d824b9c221d899812a52ef Don't copy the device argument http://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html says this is ok. --- diff --git a/keystroke-timestamps.c b/keystroke-timestamps.c index 36d1cfc..037919f 100644 --- a/keystroke-timestamps.c +++ b/keystroke-timestamps.c @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include @@ -13,7 +12,7 @@ int main (int argc, char **argv) { int print_usec = 0; - char* device = strdup("/dev/input/by-path/*kbd*"); + char* device = "/dev/input/by-path/*kbd*"; struct option long_options[] = { {"device", required_argument, 0, 'd' }, {"usec", no_argument, &print_usec, 1 }, @@ -23,8 +22,7 @@ int main (int argc, char **argv) int c = getopt_long(argc, argv, "", long_options, NULL); if (c == -1) break; if (c == 'd') { - free(device); - device = strdup(optarg); + device = optarg; continue; } if (c != 0) exit(EX_USAGE); @@ -41,7 +39,6 @@ int main (int argc, char **argv) if (glob_return != 0) { err(EX_NOINPUT, "Could not glob keyboard event file(s): %s", device); } - free(device); for (unsigned i = 0; i < glob_result.gl_pathc; i++) { int open_fd = open(glob_result.gl_pathv[i], O_RDONLY); if (open_fd < 0) {