From 94584e6626db9b3e828f7ac1da9870f3f9e2fe20 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 29 Nov 2010 15:49:22 +0100 Subject: pattern_sim: Check validity of numbers passed on command line --- src/pattern_sim.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/pattern_sim.c b/src/pattern_sim.c index d32f0ae8..b6fcd4e9 100644 --- a/src/pattern_sim.c +++ b/src/pattern_sim.c @@ -199,6 +199,7 @@ int main(int argc, char *argv[]) double *powder; char *intfile = NULL; double *intensities; + char *rval; double *phases; int config_simdetails = 0; int config_nearbragg = 0; @@ -266,7 +267,11 @@ int main(int argc, char *argv[]) break; case 'n' : - n_images = atoi(optarg); + n_images = strtol(optarg, &rval, 10); + if ( *rval != '\0' ) { + ERROR("Invalid number of images.\n"); + return 1; + } break; case 'i' : @@ -302,12 +307,20 @@ int main(int argc, char *argv[]) break; case 3 : - min_size = atof(optarg); + min_size = strtod(optarg, &rval); + if ( *rval != '\0' ) { + ERROR("Invalid minimum size.\n"); + return 1; + } random_size++; break; case 4 : - max_size = atof(optarg); + max_size = strtod(optarg, &rval); + if ( *rval != '\0' ) { + ERROR("Invalid maximum size.\n"); + return 1; + } random_size++; break; -- cgit v1.2.3