wprobe: fix missing return code check
[openwrt/svn-archive/archive.git] / package / wprobe / src / user / wprobe-lib.c
index a1a52f2..7a5460b 100644 (file)
@@ -13,6 +13,8 @@
  * GNU General Public License for more details.
  */
 
+#define _ISOC99_SOURCE
+#define _BSD_SOURCE
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <stdio.h>
@@ -558,7 +560,9 @@ wprobe_msg_to_network(int socket, struct nl_msg *msg)
        mhdr.status = WPROBE_MSG_DATA;
        mhdr.len = buflen;
        wprobe_swap_msg_hdr(&mhdr);
-       write(socket, &mhdr, sizeof(mhdr));
+       ret = write(socket, &mhdr, sizeof(mhdr));
+       if (ret < 0)
+               goto out;
 
        memcpy(buf, nlh, buflen);
        nlh = buf;
@@ -570,6 +574,8 @@ wprobe_msg_to_network(int socket, struct nl_msg *msg)
        swap_genlmsghdr(gnlh);
        swap_nlmsghdr(nlh);
        ret = write(socket, buf, buflen);
+
+out:
        free(buf);
 
        return ret;