revisit some calls of strtol(), stroul(), strtoull()

Replace some with atoi(), where the VTY has already validated correct
range of the argument.

Replace others with the new osmo_str_to_int() or osmo_str_to_int64()
functions, possibly covering more detection of invalid number strings.

Leave those strtol() callers that depend on endptr to provide the next
string token.

Related: SYS#5542
Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391
diff --git a/src/vty/tdef_vty.c b/src/vty/tdef_vty.c
index 0556d8c..09459f1 100644
--- a/src/vty/tdef_vty.c
+++ b/src/vty/tdef_vty.c
@@ -50,10 +50,9 @@
  */
 struct osmo_tdef *osmo_tdef_vty_parse_T_arg(struct vty *vty, struct osmo_tdef *tdefs, const char *T_str)
 {
-	long l;
+	int l;
 	int T;
 	struct osmo_tdef *t;
-	char *endptr;
 	const char *T_nr_str;
 	int sign = 1;
 
@@ -77,9 +76,7 @@
 		return NULL;
 	}
 
-	errno = 0;
-	l = strtol(T_nr_str, &endptr, 10);
-	if (errno || *endptr || l > INT_MAX || l < 0) {
+	if (osmo_str_to_int(&l, T_nr_str, 10, 0, INT_MAX)) {
 		vty_out(vty, "%% Invalid T timer argument (should be 'T1234' or 'X1234'): '%s'%s", T_str, VTY_NEWLINE);
 		return NULL;
 	}