lib: fix some strtoul() use cases

...otherwise 4294967295 is not a valid value on 32bit systems
diff --git a/lib/vty.h b/lib/vty.h
index 7df04b5..639d741 100644
--- a/lib/vty.h
+++ b/lib/vty.h
@@ -152,8 +152,9 @@
 #define VTY_GET_LONG(NAME,V,STR) \
 do { \
   char *endptr = NULL; \
+  errno = 0; \
   (V) = strtoul ((STR), &endptr, 10); \
-  if (*endptr != '\0' || (V) == ULONG_MAX) \
+  if (*(STR) == '-' || *endptr != '\0' || errno) \
     { \
       vty_out (vty, "%% Invalid %s value%s", NAME, VTY_NEWLINE); \
       return CMD_WARNING; \