aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pending.c33
1 files changed, 5 insertions, 28 deletions
diff --git a/lib/pending.c b/lib/pending.c
index a06912ee..eda45b40 100644
--- a/lib/pending.c
+++ b/lib/pending.c
@@ -38,38 +38,15 @@ unsigned long get_int_value(const char *numstr, unsigned long lowrange, unsigned
{
unsigned long rvalue = 0;
char *ptr;
- if(*numstr == '-' || *numstr == '+' || isspace(*numstr)) perror_exit("invalid number '%s'", numstr);
+
+ if (!isdigit(*numstr)) perror_exit("bad number '%s'", numstr);
errno = 0;
rvalue = strtoul(numstr, &ptr, 10);
- if(errno || numstr == ptr) perror_exit("invalid number '%s'", numstr);
- if(*ptr) perror_exit("invalid number '%s'", numstr);
- if(rvalue >= lowrange && rvalue <= highrange) return rvalue;
- else {
- perror_exit("invalid number '%s'", numstr);
- return rvalue; //Not reachable; to avoid waring message.
- }
-}
-/*
- * strcat to mallocated buffer
- * reallocate if need be
- */
-char *astrcat (char *x, char *y) {
- char *z;
- z = x;
- x = realloc (x, (x ? strlen (x) : 0) + strlen (y) + 1);
- if (!x) return 0;
- (z ? strcat : strcpy) (x, y);
- return x;
-}
+ if (errno || numstr == ptr || *ptr || rvalue < lowrange || rvalue > highrange)
+ perror_exit("bad number '%s'", numstr);
-/*
- * astrcat, but die on failure
- */
-char *xastrcat (char *x, char *y) {
- x = astrcat (x, y);
- if (!x) error_exit ("xastrcat");
- return x;
+ return rvalue;
}
void daemonize(void)