As Jan Engelhardt pointed out, pktloc.c is currently licenses under the GPL
rather than the LGPL. This is a result of its previous existance in src/
which is GPL licensed. I missed to change its license when moving it to
lib/. Since I am the only contributor to the code, I am changing the license
hereby.
This patch fixes an unaligned access for IPv6. On systems with strict alignment requirements, the unaligned access will either result in garbage data or a crash.
Now the return value in case group id is not find is 0. Change it to
return -NLE_OBJ_NOTFOUND which makes more sense. This should not break
anything because genl_ctrl_grp_by_name is static and called only from
genl_ctrl_resolve_grp. genl_ctrl_resolve_grp already might return
-NLE_OBJ_NOTFOUND.
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
I've found a bug in the following scenario (fragment of code):
while (1) {
struct nl_sock *sk = nl_socket_alloc();
if (sk == NULL) {
fprintf(stderr, "Failed to allocate nl socket\n");
break;
}
nl_socket_set_local_port(sk, 0);
nl_socket_free(sk);
}
The problem is that nl_socket_set_local_port(, 0) does not
release local port if it is allocated before.
This patch has been in Fedora and RHEL for a while. It adds a mutex
to protect the port map from concurrent thread accesses.
Original patch from Stefan Berger <stefanb@us.ibm.com>.
Modified to use configure.in to check for libpthread
- improved stylesheets for both doxygen and asciidoc
- use of xml doxygen layout
- python script to resolve <<foo>> asciidoc references to
<<foo, title>> based on the target caption
- graphics for netlink and netlink error headers
- more link documentation
stores rtnl_link object in address if cache is availble. Provide access
via rtnl_addr_get_link() and rtnl_addr_set_link().
Add rtnl_addr_get() which searches a address cache for an address
matching ifindex and local address.
OK i found the bug, is is the patch !!
Can someone push it into the git tree ?
Regards,
Romary Sonrier
=========================
My analysis:
I guess that the pay load is *struct fib_rule_hdr*
struct fib_rule_hdr {
__u8 family;
__u8 dst_len;
__u8 src_len;
__u8 tos;
__u8 table;
__u8 res1; /* reserved */
__u8 res2; /* reserved */
__u8 action;
__u32 flags;
};
> [PAYLOAD] 12 octets
> 02 00 00 00 0a 00 00 01 00 00 00 00 ............
so
family = 02 , fine
table = 10, fine
but
src_len =0 !!!! should be 32