[PATCH] opensgsn: Replace some TODOs with error paths and fix compiler warning

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Mike McTernan (wavemobile) mike.mcternan at wavemobile.com
Tue Apr 28 10:06:49 UTC 2015


openggsn: Check return codes and take error paths on failure.

Return early when socket() returns -1, and check return codes where indicated by some TODOs.  This removes 2 TODOs and fixes a compiler warning about assignment to a variable which then isn't used.

Signed-off-by: Michael McTernan <mike.mcternan at wavemobile.com>
Index: osmobss/openggsn/lib/tun.c
===================================================================
--- osmobss.orig/openggsn/lib/tun.c   2015-04-28 10:51:37.960449539 +0100
+++ osmobss/openggsn/lib/tun.c   2015-04-28 10:54:40.301130739 +0100
@@ -117,6 +117,7 @@ int tun_sifflags(struct tun_t *this, int
     ifr.ifr_name[IFNAMSIZ - 1] = 0;  /* Make sure to terminate */
     if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
           SYS_ERR(DTUN, LOGL_ERROR, errno, "socket() failed");
+          return -1;
     }
     if (ioctl(fd, SIOCSIFFLAGS, &ifr)) {
           SYS_ERR(DTUN, LOGL_ERROR, errno,
@@ -318,9 +319,19 @@ int tun_addaddr(struct tun_t *this,
     req.n.nlmsg_seq = 0;
     req.n.nlmsg_flags |= NLM_F_ACK;

-    status = sendmsg(fd, &msg, 0);   /* TODO Error check */
+    status = sendmsg(fd, &msg, 0);
+    if (status == -1) {
+          SYS_ERR(DTUN, LOGL_ERROR, errno, "sendmsg() failed");
+          close(fd);
+          return -1;
+    }
+
+    status = tun_sifflags(this, IFF_UP | IFF_RUNNING);
+    if (status == -1) {
+          close(fd);
+          return -1;
+    }

-    tun_sifflags(this, IFF_UP | IFF_RUNNING);   /* TODO */
     close(fd);
     this->addrs++;
     return 0;


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20150428/0b410484/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Check-and-fix-tun-setup-error-paths.patch
Type: application/octet-stream
Size: 1414 bytes
Desc: Check-and-fix-tun-setup-error-paths.patch
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20150428/0b410484/attachment.obj>


More information about the OpenBSC mailing list