| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Coverity warns about this. Avoid it.
Error: CLANG_WARNING: [#def3]
libnl-3.8.0/lib/addr.c:324:3: warning[deadcode.DeadStores]: Value stored to 'len' is never read
# 322| !strcasecmp(str, "any")) {
# 323|
# 324|-> len = 0;
# 325|
# 326| switch (hint) {
|
|
|
|
|
|
|
|
|
|
|
|
| |
Coverity doesn't like this. Workaround.
Error: CPPCHECK_WARNING (CWE-190): [#def97]
libnl-3.8.0/lib/route/tc.c:681: error[integerOverflow]: Signed integer overflow for expression '1<<i'.
# 679|
# 680| for (i = 0; i < 32; i++)
# 681|-> if ((1 << i) == cell_size)
# 682| return i;
# 683|
|
|
|
|
|
|
| |
Don't return -1, that is not an error code.
Also, return early from function.
|
|
|
|
| |
Fixes: 49c20efaa783 ('xfrm: fix crashes in case of ENOMEM')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Coverity really wants to warn if a time_t is cast to 32 bits.
We use time() here to get (some very bad) randomness. The loss
of the upper bits is the least of the problems.
Work around the coverity warning by also the higher bits.
Error: Y2K38_SAFETY (CWE-197): [#def12]
libnl-3.8.0/lib/socket.c:76: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "time(NULL)" is cast to "uint32_t".
# 74|
# 75| if (idx_state == 0) {
# 76|-> uint32_t t = (uint32_t) time(NULL);
# 77|
# 78| /* from time to time (on average each 2^15 calls), the idx_state will
Error: Y2K38_SAFETY (CWE-197): [#def13]
libnl-3.8.0/lib/socket.c:193: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "time(NULL)" is cast to "unsigned int".
# 191| sk->s_local.nl_family = AF_NETLINK;
# 192| sk->s_peer.nl_family = AF_NETLINK;
# 193|-> sk->s_seq_next = (unsigned int) time(NULL);
# 194| sk->s_seq_expect = sk->s_seq_next;
# 195|
|
|
|
|
| |
Coverity warns "Signed integer overflow for expression '1<<31'".
|
|
|
|
|
|
| |
Coverity warns about this. Try to avoid the warning by casting.
We only use time() to get some (very little) entropy. The cast
is fine.
|
|
|
|
|
|
|
|
|
|
|
|
| |
rtnl_act_append() either takes ownership of the argument, or does
nothing (on error). This pattern is hard to get right. In the past,
there were various bugs at this place.
Add two wrappers _rtnl_act_append_get() and _rtnl_act_append_take()
which consistently don't take ownership of the pointer or take it.
Also, in functions like rtnl_flower_append_action() only set the mask
after successfully modifying the data.
|
|
|
|
|
|
| |
Using rtnl_act_append() correctly is hard.
Fixes: ef46de143206 ('route/cls: add flower classifier')
|
|
|
|
| |
Fixes: 105a6be10a5f ('route: use cleanup macro in rtnl_act_parse()')
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Coverity warns:
Error: RESOURCE_LEAK (CWE-772): [#def2]
libnl-3.8.0/lib/route/act.c:421: alloc_fn: Storage is returned from allocation function "rtnl_act_alloc".
libnl-3.8.0/lib/route/act.c:421: var_assign: Assigning: "act" = storage returned from "rtnl_act_alloc()".
libnl-3.8.0/lib/route/act.c:426: var_assign: Assigning: "tc" = "act".
libnl-3.8.0/lib/route/act.c:438: noescape: Resource "tc" is not freed or pointed-to in "rtnl_tc_set_kind".
libnl-3.8.0/lib/route/act.c:455: leaked_storage: Variable "tc" going out of scope leaks the storage it points to.
libnl-3.8.0/lib/route/act.c:455: leaked_storage: Variable "act" going out of scope leaks the storage it points to.
# 453| tc_act_stats_policy);
# 454| if (err < 0)
# 455|-> return err;
# 456|
# 457| if (tb3[TCA_STATS_BASIC]) {
Fixes: 05bd6366387c ('add support for TC action statistics')
|
|
|
|
|
|
|
| |
Adds the rtnl_link_can_get_device_stats function to get xstats of a
CAN-bus link as a can_device_stats struct.
https://github.com/thom311/libnl/pull/368
|
|
|
|
| |
Use cleanup attribute and return-early.
|
| |
|
|
|
|
| |
Use _nl_addr_build() helper. No need for all this redundant code.
|
| |
|
|
|
|
|
|
|
| |
These internal error codes are probably a bad idea. However, at least be
consistent about it.
Fixes: 77bbf2270ce7 ('xfrm: fix an unintialized return value on memory allocation error in xfrmnl_ae_parse()')
|
|
|
|
|
|
|
| |
Passing a size of (sizeof (ae_id->saddr)) is wrong for IPv4. The size depends
on the address family.
Fixes: 917154470895 ('xfrm: add xfrm support')
|
|
|
|
|
|
|
|
| |
Leaving XFRM_SP_ATTR_TMPL active in the mask may not impose a problem
but, when removing the last template from a policy, the value signifying
attached templates should be cleared.
Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's a similar issue as in commit 3f4f1dda, when calling
xfrmnl_sp_parse, the refcount of the addresses for selectors and
templates increases to two, as xfrmnl_sel_set_[s|d]addr and
xfrmnl_user_tmpl_set_[s|d]addr add another reference to the address
object. As only one of those refs is dropped in sel_destroy or
xfrmnl_user_tmpl_free respectively the address objects' refcount
will never drop to zero, causing a leak.
Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>
Fixes: 917154470895 ('xfrm: add xfrm support')
|
|
|
|
|
|
|
| |
[thaller@redhat.com: fixed wrong variable name in code and reworded
commit message.]
https://github.com/thom311/libnl/pull/363
|
| |
|
| |
|
|
|
|
| |
Avoid non-threadsafe libc API.
|
| |
|
|
|
|
| |
$ ./tools/clang-format.sh
|
|
|
|
|
|
| |
As we now copy all linux headers, and we have include/linux-private
in our include search path, just include the linux headers as we commonly
do.
|
|
|
|
| |
Taken from v6.4 (6995e2de6891c724bfeb2db33d7b87775f913ad1).
|
|
|
|
|
| |
libnl3 itself needs to be build with a C compiler. Drop the unnecessary
"extern "C"" parts from internal code.
|
| |
|
|
|
|
|
|
|
| |
We have copies of the linux headers in include/linux-private.
For those files, include the copies explicitly.
No practice there is no difference, since we build with :-Ilinux-private".
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In an autotools project, <config.h> should be included as very first thing
in almost all cases. We also want include other stuff, in particular
"include/base", which contains our own extensions on top of plain C (it
is thus applicable to all our C modules).
Add a "nl-default.h", which can be included as first and prepares a base
for each C source.
Additionally, since header files are never compiled directly (only indirectly
by being included), they can rely that "nl-default.h" is always available.
|
|
|
|
|
|
|
| |
It seems "config.h" is the more common name for the autotools generated
header. In any case, it should not be under "lib", because lib is
specifically about libnl-3 and similar libraries. It's awkward for
modules under src to include from lib.
|
|
|
|
|
| |
Move all the declarations from "netlink-private/types.h" to places
closer to where they are used.
|
|
|
|
|
| |
Naming is just so important to understand what this is.
This name is better.
|
|
|
|
|
| |
Naming is just so important to understand what this is.
This name is better.
|
|
|
|
|
|
| |
The filename is still unique (which is the important part). Otherwise,
the "priv" is redundant, since the header being inside "lib/genl" is clearly
private.
|
| |
|
|
|
|
|
|
|
|
| |
https://github.com/thom311/libnl/issues/343
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
https://github.com/thom311/libnl/pull/346
|
|
|
|
| |
lib/route/link-sriov.h
|
| |
|
| |
|
|
|
|
|
| |
It's a private header only for lib/route (libnl-route-3). We already
have a similar header. Move the content to "lib/route/tc-api.h".
|
|
|
|
|
|
| |
This symbols is (wronly) exposed on the ABI of libnl-route-3.
Move the declaration to "tc-api.h", where there are similar
symbols of this kind.
|
|
|
|
|
|
|
|
| |
This header is entirely private to lib/route (libnl-route-3).
Move the header there, it should not be used by anybody else.
Note that libnl-route-3 exports symbols from this private header. That
is ugly, make that clearer by adding comments.
|
|
|
|
|
| |
This header is entirely private to compiling libnl-route-3 under
lib/route. Move the header there.
|