X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=package%2Fwprobe%2Fsrc%2Fuser%2Fwprobe-lib.c;h=7a5460bb00bfbc0b1bda673c03bc40ccae78fd76;hb=3ebef1c4b57494636f238c468d095bf8b6798969;hp=a3b0fb5e5e21dd73618905fa48ea3e103b2d9317;hpb=8f7f273fa4ce32e983f4437a7efa89d75062a2f9;p=openwrt-10.03%2F.git diff --git a/package/wprobe/src/user/wprobe-lib.c b/package/wprobe/src/user/wprobe-lib.c index a3b0fb5e5..7a5460bb0 100644 --- a/package/wprobe/src/user/wprobe-lib.c +++ b/package/wprobe/src/user/wprobe-lib.c @@ -13,6 +13,8 @@ * GNU General Public License for more details. */ +#define _ISOC99_SOURCE +#define _BSD_SOURCE #include #include #include @@ -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; @@ -795,7 +801,8 @@ wprobe_get_auto(const char *arg, char **err) free(devstr); return wprobe_get_dev(arg); #else - *err = "Invalid argument"; + if (err) + *err = "Invalid argument"; goto out; #endif }