diff options
-rw-r--r-- | examples/genl/genl-family-get.c | 2 | ||||
-rw-r--r-- | examples/netfilter/nf-queue.c | 2 | ||||
-rw-r--r-- | examples/netfilter/nfct-event.c | 2 | ||||
-rw-r--r-- | examples/rtnl/rtnl-link-dump.c | 2 | ||||
-rw-r--r-- | examples/rtnl/rtnl-link-dump2.c | 2 | ||||
-rw-r--r-- | examples/rtnl/rtnl-link-dump3.c | 2 | ||||
-rw-r--r-- | examples/rtnl/rtnl-link-event.c | 2 | ||||
-rw-r--r-- | examples/rtnl/rtnl-link-set.c | 2 | ||||
-rw-r--r-- | examples/rtnl/rtnl-route-add.c | 2 | ||||
-rw-r--r-- | examples/rtnl/rtnl-route-dump.c | 2 | ||||
-rw-r--r-- | include/libmnl/libmnl.h | 1 | ||||
-rw-r--r-- | src/socket.c | 7 |
12 files changed, 16 insertions, 12 deletions
diff --git a/examples/genl/genl-family-get.c b/examples/genl/genl-family-get.c index 326755e..b015466 100644 --- a/examples/genl/genl-family-get.c +++ b/examples/genl/genl-family-get.c @@ -183,7 +183,7 @@ static int data_cb(const struct nlmsghdr *nlh, void *data) int main(int argc, char *argv[]) { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh; struct genlmsghdr *genl; int ret; diff --git a/examples/netfilter/nf-queue.c b/examples/netfilter/nf-queue.c index 1df004a..8b1a5e7 100644 --- a/examples/netfilter/nf-queue.c +++ b/examples/netfilter/nf-queue.c @@ -167,7 +167,7 @@ nfq_build_verdict(char *buf, int id, int queue_num, int verd) int main(int argc, char *argv[]) { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh; int ret; unsigned int portid, queue_num; diff --git a/examples/netfilter/nfct-event.c b/examples/netfilter/nfct-event.c index 9dcf6cc..c713946 100644 --- a/examples/netfilter/nfct-event.c +++ b/examples/netfilter/nfct-event.c @@ -208,7 +208,7 @@ static int data_cb(const struct nlmsghdr *nlh, void *data) int main() { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; int ret; nl = mnl_socket_open(NETLINK_NETFILTER); diff --git a/examples/rtnl/rtnl-link-dump.c b/examples/rtnl/rtnl-link-dump.c index 8bce803..d47d32e 100644 --- a/examples/rtnl/rtnl-link-dump.c +++ b/examples/rtnl/rtnl-link-dump.c @@ -69,7 +69,7 @@ static int data_cb(const struct nlmsghdr *nlh, void *data) int main() { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh; struct rtgenmsg *rt; int ret; diff --git a/examples/rtnl/rtnl-link-dump2.c b/examples/rtnl/rtnl-link-dump2.c index ac3a6be..8189e7c 100644 --- a/examples/rtnl/rtnl-link-dump2.c +++ b/examples/rtnl/rtnl-link-dump2.c @@ -60,7 +60,7 @@ static int data_cb(const struct nlmsghdr *nlh, void *data) int main() { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh; struct rtgenmsg *rt; int ret; diff --git a/examples/rtnl/rtnl-link-dump3.c b/examples/rtnl/rtnl-link-dump3.c index 6d06d7c..d8cacb4 100644 --- a/examples/rtnl/rtnl-link-dump3.c +++ b/examples/rtnl/rtnl-link-dump3.c @@ -60,7 +60,7 @@ static int data_cb(const struct nlmsghdr *nlh, void *data) int main() { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh; struct rtgenmsg *rt; int ret; diff --git a/examples/rtnl/rtnl-link-event.c b/examples/rtnl/rtnl-link-event.c index aa51a1e..4aa11ef 100644 --- a/examples/rtnl/rtnl-link-event.c +++ b/examples/rtnl/rtnl-link-event.c @@ -68,7 +68,7 @@ static int data_cb(const struct nlmsghdr *nlh, void *data) int main() { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; int ret; nl = mnl_socket_open(NETLINK_ROUTE); diff --git a/examples/rtnl/rtnl-link-set.c b/examples/rtnl/rtnl-link-set.c index d5cf9b1..00afe27 100644 --- a/examples/rtnl/rtnl-link-set.c +++ b/examples/rtnl/rtnl-link-set.c @@ -18,7 +18,7 @@ int main(int argc, char *argv[]) { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh; struct ifinfomsg *ifm; int ret; diff --git a/examples/rtnl/rtnl-route-add.c b/examples/rtnl/rtnl-route-add.c index 1f2d1a0..26105b3 100644 --- a/examples/rtnl/rtnl-route-add.c +++ b/examples/rtnl/rtnl-route-add.c @@ -51,7 +51,7 @@ int main(int argc, char *argv[]) } struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh; struct rtmsg *rtm; diff --git a/examples/rtnl/rtnl-route-dump.c b/examples/rtnl/rtnl-route-dump.c index 34c95cf..22395c4 100644 --- a/examples/rtnl/rtnl-route-dump.c +++ b/examples/rtnl/rtnl-route-dump.c @@ -199,7 +199,7 @@ static int data_cb(const struct nlmsghdr *nlh, void *data) int main() { struct mnl_socket *nl; - char buf[getpagesize()]; + char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh; struct rtmsg *rtm; int ret; diff --git a/include/libmnl/libmnl.h b/include/libmnl/libmnl.h index 09099a1..f658428 100644 --- a/include/libmnl/libmnl.h +++ b/include/libmnl/libmnl.h @@ -11,6 +11,7 @@ */ #define MNL_SOCKET_AUTOPID 0 +#define MNL_SOCKET_BUFFER_SIZE 8192UL /* see linux/netlink.h */ struct mnl_socket; diff --git a/src/socket.c b/src/socket.c index 08ac138..53f98c7 100644 --- a/src/socket.c +++ b/src/socket.c @@ -186,8 +186,11 @@ int mnl_socket_sendto(const struct mnl_socket *nl, const void *buf, size_t len) * * On error, it returns -1 and errno is appropriately set. If errno is set * to ENOSPC, it means that the buffer that you have passed to store the - * netlink message is small so you have received a truncated message. Make - * sure your program set a buffer big enough to store the netlink message. + * netlink message is too small so you have received a truncated message. + * To avoid this you have to allocate a buffer of MNL_SOCKET_BUFFER_SIZE + * (which is 8KB, see linux/netlink.h for more information). Using this + * buffer size ensures that your buffer is big enough to store the netlink + * message without truncating it. */ int mnl_socket_recvfrom(const struct mnl_socket *nl, void *buf, size_t bufsiz) { |