aboutsummaryrefslogtreecommitdiffstats
path: root/editcap.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2016-09-05 16:39:25 -0700
committerGuy Harris <guy@alum.mit.edu>2016-09-05 23:39:59 +0000
commit94d8250bd00b30e6b0935a0c48d78bec0f2a9242 (patch)
treebc3fcff95ce692ac5eaf34b9f619a5c36fa09f0e /editcap.c
parent2a38dc74ede3eba69f0d73b61f1735a4036528c1 (diff)
Use get_positive_int() to parse signed positive arguments.
Change-Id: Id17b56704f484abdf047a3d1b0775f7fa46eb380 Reviewed-on: https://code.wireshark.org/review/17507 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'editcap.c')
-rw-r--r--editcap.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/editcap.c b/editcap.c
index da9c76d3c3..75ea025b66 100644
--- a/editcap.c
+++ b/editcap.c
@@ -76,6 +76,8 @@
#endif
#include <wsutil/crash_info.h>
+#include <wsutil/clopts_common.h>
+#include <wsutil/cmdarg_err.h>
#include <wsutil/filesystem.h>
#include <wsutil/file_util.h>
#include <wsutil/md5.h>
@@ -892,7 +894,6 @@ framenum_compare(gconstpointer a, gconstpointer b, gpointer user_data _U_)
return 0;
}
-#ifdef HAVE_PLUGINS
/*
* General errors are reported with an console message in editcap.
*/
@@ -903,7 +904,16 @@ failure_message(const char *msg_format, va_list ap)
vfprintf(stderr, msg_format, ap);
fprintf(stderr, "\n");
}
-#endif
+
+/*
+ * Report additional information for an error in command-line arguments.
+ */
+static void
+failure_message_cont(const char *msg_format, va_list ap)
+{
+ vfprintf(stderr, msg_format, ap);
+ fprintf(stderr, "\n");
+}
static wtap_dumper *
editcap_dump_open(const char *filename, guint32 snaplen,
@@ -975,6 +985,8 @@ main(int argc, char *argv[])
char* init_progfile_dir_error;
#endif
+ cmdarg_err_init(failure_message, failure_message_cont);
+
#ifdef _WIN32
arg_list_utf_16to8(argc, argv);
create_app_running_mutex();
@@ -1192,20 +1204,11 @@ main(int argc, char *argv[])
break;
case 'i': /* break capture file based on time interval */
- secs_per_block = atoi(optarg);
- if (secs_per_block <= 0) {
- fprintf(stderr, "editcap: \"%s\" isn't a valid time interval\n\n",
- optarg);
- exit(1);
- }
+ secs_per_block = get_positive_int(optarg, "time interval");
break;
case 'I': /* ignored_bytes at the beginning of the frame for duplications removal */
- ignored_bytes = atoi(optarg);
- if(ignored_bytes <= 0) {
- fprintf(stderr, "editcap: \"%s\" isn't a valid number of bytes to ignore\n", optarg);
- exit(1);
- }
+ ignored_bytes = get_positive_int(optarg, "number of bytes to ignore");
break;
case 'L':