attempt to regularize atoi mess.
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index 254d7e7..9e030bd 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -575,20 +575,20 @@
 
 	/* do normal option parsing */
 	getopt32(argc, argv, OPTION_STR, OPTION_PARAM);
-	if (option_mask32 & OPT_mark) MarkInterval = atoi(opt_m) * 60; // -m
+	if (option_mask32 & OPT_mark) MarkInterval = xatoul_range(opt_m, 0, INT_MAX/60) * 60; // -m
 	//if (option_mask32 & OPT_nofork) // -n
 	//if (option_mask32 & OPT_outfile) // -O
 	if (option_mask32 & OPT_loglevel) { // -l
-		logLevel = atoi(opt_l);
+		logLevel = xatoi_u(opt_l);
 		/* Valid levels are between 1 and 8 */
 		if (logLevel < 1 || logLevel > 8)
 			bb_show_usage();
 	}
 	//if (option_mask32 & OPT_small) // -S
 #if ENABLE_FEATURE_ROTATE_LOGFILE
-	if (option_mask32 & OPT_filesize) logFileSize = atoi(opt_s) * 1024; // -s
+	if (option_mask32 & OPT_filesize) logFileSize = xatoul_range(opt_s, 0, INT_MAX/1024) * 1024; // -s
 	if (option_mask32 & OPT_rotatecnt) { // -b
-		logFileRotate = atoi(opt_b);
+		logFileRotate = xatoi_u(opt_b);
 		if (logFileRotate > 99) logFileRotate = 99; 
 	}
 #endif
@@ -598,7 +598,7 @@
 		char *host = xstrdup(opt_R);
 		p = strchr(host, ':');
 		if (p) {
-			port = atoi(p + 1);
+			port = xatou16(p + 1);
 			*p = '\0';
 		}
 		remoteaddr.sin_family = AF_INET;
@@ -612,9 +612,7 @@
 #if ENABLE_FEATURE_IPC_SYSLOG
 	if (option_mask32 & OPT_circularlog) { // -C
 		if (opt_C) {
-			int buf_size = atoi(opt_C);
-			if (buf_size >= 4)
-				shm_size = buf_size * 1024;
+			shm_size = xatoul_range(opt_C, 4, INT_MAX/1024) * 1024;
 		}
 	}
 #endif