diff --git a/rdmsr.c b/rdmsr.c index b19986a..57ecb26 100644 --- a/rdmsr.c +++ b/rdmsr.c @@ -194,7 +194,11 @@ int main(int argc, char *argv[]) exit(127); } - reg = strtoul(argv[optind], NULL, 0); + reg = strtoul(argv[optind], &endarg, 0); + if (*endarg) { + fprintf(stderr, "rdmsr: failed to parse register number\n"); + exit(127); + } if (cpu == -1) { doing_for_all = 1; diff --git a/wrmsr.c b/wrmsr.c index b32cc3e..2080e5f 100644 --- a/wrmsr.c +++ b/wrmsr.c @@ -121,7 +121,11 @@ int main(int argc, char *argv[]) exit(127); } - reg = strtoul(argv[optind++], NULL, 0); + reg = strtoul(argv[optind++], &endarg, 0); + if (*endarg) { + fprintf(stderr, "wrmsr: failed to parse register number\n"); + exit(127); + } if (cpu == -1) { doing_for_all = 1;