From db98f309a9e26b3bb531efb0b92bafad7b5ddff7 Mon Sep 17 00:00:00 2001 From: Dmitri Kalashnik Date: Tue, 28 Apr 2020 13:10:56 +0400 Subject: sgsnemu: use real tun device name after the device is up. The device name option could be empty, using it without checking would crash sgsnemu. Using the real device is better anyway. Change-Id: Ic3934281bfc2e433323e4ab72cf5be2cbd1c962a --- sgsnemu/sgsnemu.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c index 4c51157..f137f2c 100644 --- a/sgsnemu/sgsnemu.c +++ b/sgsnemu/sgsnemu.c @@ -1928,11 +1928,11 @@ int main(int argc, char **argv) we don't need it. Don't exit on error since this sysctl is only available starting with linux 4.11. */ snprintf(buf, sizeof(buf), "%u", IN6_ADDR_GEN_MODE_NONE); - if (proc_ipv6_conf_write(options.tun_dev_name, "addr_gen_mode", buf) < 0) { + if (proc_ipv6_conf_write(tun->devname, "addr_gen_mode", buf) < 0) { SYS_ERR(DSGSN, LOGL_ERROR, errno, "Failed to disable addr_gen_mode on %s, an extra link-local " "ip address will appear on the tun device.\n", - options.tun_dev_name); + tun->devname); } #endif @@ -1940,9 +1940,9 @@ int main(int argc, char **argv) if (tun->fd > maxfd) maxfd = tun->fd; - if (proc_ipv6_conf_write(options.tun_dev_name, "accept_ra", "0") < 0) { + if (proc_ipv6_conf_write(tun->devname, "accept_ra", "0") < 0) { SYS_ERR(DSGSN, LOGL_ERROR, 0, - "Failed to disable IPv6 SLAAC on %s\n", options.tun_dev_name); + "Failed to disable IPv6 SLAAC on %s\n", tun->devname); exit(1); } } -- cgit v1.2.3