From 6e3a87093dfcd8b4b62685e67b565d842c631da1 Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Mon, 12 Jun 2017 23:55:37 +0300 Subject: trafgen: Fix output pcap file name length trimming Trim output name to IFNAMSIZ only if the output is a networking device, otherwise the following error occured if output name is greater then IFNAMSIZ: $ trafgen -n 1 '{ udp() }' -o /tmp/xxxxxxxxxxxxxx.pcap No networking device or pcap file: /tmp/xxxxxxxxxx Failed to open output device Signed-off-by: Vadim Kochan Signed-off-by: Tobias Klauser --- trafgen_dev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'trafgen_dev.c') diff --git a/trafgen_dev.c b/trafgen_dev.c index cd99a0c..80e7481 100644 --- a/trafgen_dev.c +++ b/trafgen_dev.c @@ -174,8 +174,10 @@ struct dev_io *dev_io_open(const char *name, enum dev_io_mode_t mode) struct dev_io *dev = xzmalloc(sizeof(struct dev_io)); if (strstr(name, ".pcap")) { + dev->name = xstrdup(name); dev->ops = &dev_pcap_ops; } else if (device_mtu(name) > 0) { + dev->name = xstrndup(name, IFNAMSIZ); dev->ops = &dev_net_ops; } else { fprintf(stderr, "No networking device or pcap file: %s\n", name); @@ -189,7 +191,6 @@ struct dev_io *dev_io_open(const char *name, enum dev_io_mode_t mode) } } - dev->name = xstrdup(name); return dev; }; -- cgit v1.2.3-54-g00ecf