Fix for memerror if value is out of range.
authorBrian Aker <brian@gaz>
Thu, 14 Jan 2010 20:16:45 +0000 (12:16 -0800)
committerBrian Aker <brian@gaz>
Thu, 14 Jan 2010 20:16:45 +0000 (12:16 -0800)
clients/memerror.c

index 24798a00c3dc7d592bcfa2d50df7721a6b280e77..84882520d7fe2879e5adeb69f7c7978d509cc8a2 100644 (file)
@@ -31,12 +31,23 @@ static int opt_verbose= 0;
 
 int main(int argc, char *argv[])
 {
+  unsigned long value;
   options_parse(argc, argv);
 
   if (argc != 2)
     return 1;
 
-  printf("%s\n", memcached_strerror(NULL, atoi(argv[1])));
+  value= strtol(argv[1], (char **) NULL, 10);
+
+  if (value >= MEMCACHED_SUCCESS && value < MEMCACHED_MAXIMUM_RETURN)
+  {
+    printf("%s\n", memcached_strerror(NULL, (memcached_return_t)value));
+  }
+  else
+  {
+    fprintf(stderr, "Unknown Error Code\n");
+    return 1;
+  }
 
   return 0;
 }