Skip to content

gnrc_sixlowpan_frag_vrb: fix issues with interval marker inherited from base#12848

Merged
aabadie merged 3 commits intoRIOT-OS:masterfrom
miri64:gnrc_sixlowpan_frag_rb/fix/interval-fixes
Jan 15, 2020
Merged

gnrc_sixlowpan_frag_vrb: fix issues with interval marker inherited from base#12848
aabadie merged 3 commits intoRIOT-OS:masterfrom
miri64:gnrc_sixlowpan_frag_rb/fix/interval-fixes

Conversation

@miri64
Copy link
Member

@miri64 miri64 commented Nov 29, 2019

Contribution description

gnrc_sixlowpan_frag_rb_base_rm() cleans up the intervals which is part of gnrc_sixlowpan_frag_rb, not gnrc_sixlowpan_frag, so when the gnrc_sixlowpan_frag is not compiled in, but gnrc_sixlowpan_frag_rb, the intervals allocated in the reassembly buffer and inherited by the virtual reassembly buffer are never released.

This also adds an error return for the reassembly buffer, when the interval buffer is full.

Testing procedure

make -C tests/unittests/ tests-gnrc_sixlowpan_frag_vrb flash-only tests

Should still pass.

When applying the following patch

diff --git a/tests/unittests/tests-gnrc_sixlowpan_frag_vrb/tests-gnrc_sixlowpan_frag_vrb.c b/tests/unittests/tests-gnrc_sixlowpan_frag_vrb/tests-gnrc_sixlowpan_frag_vrb.c
index d00a54ee0d..6cb6a4aa31 100644
--- a/tests/unittests/tests-gnrc_sixlowpan_frag_vrb/tests-gnrc_sixlowpan_frag_vrb.c
+++ b/tests/unittests/tests-gnrc_sixlowpan_frag_vrb/tests-gnrc_sixlowpan_frag_vrb.c
@@ -36,12 +36,12 @@
  * reference for forwarding) so an uninitialized one is enough */
 static gnrc_netif_t _dummy_netif;
 
-static const gnrc_sixlowpan_frag_rb_int_t _interval = {
+static gnrc_sixlowpan_frag_rb_int_t _interval = {
     .next = NULL,
     .start = 0,
     .end = 116U,
 };
-static const gnrc_sixlowpan_frag_rb_base_t _base = {
+static gnrc_sixlowpan_frag_rb_base_t _base = {
     .ints = (gnrc_sixlowpan_frag_rb_int_t *)&_interval,
     .src = TEST_SRC,
     .dst = TEST_DST,
@@ -58,6 +58,7 @@ static void set_up(void)
 {
     gnrc_sixlowpan_frag_vrb_reset();
     gnrc_sixlowpan_frag_fb_reset();
+    _interval.end = 116U;
 }
 
 static void test_vrb_add__success(void)
@@ -154,6 +155,7 @@ static void test_vrb_rm(void)
     gnrc_sixlowpan_frag_vrb_rm(res);
     TEST_ASSERT_NULL(gnrc_sixlowpan_frag_vrb_get(_base.src, _base.src_len,
                                                  _base.tag));
+    TEST_ASSERT_EQUAL_INT(0U, _interval.end);
 }
 
 static void test_vrb_gc(void)

(so the interval provided with the base can be changed and reset after each test and the removal (end == 0) is checked in the remove test).

USEMODULE=gnrc_sixlowpan_frag_rb make -C tests/unittests/ tests-gnrc_sixlowpan_frag_vrb flash-only tests

should also succeed.

Issues/PRs references

None

`gnrc_sixlowpan_frag_rb_base_rm()` cleans up the intervals which is part
of `gnrc_sixlowpan_frag_rb`, not `gnrc_sixlowpan_frag`, so when the
`gnrc_sixlowpan_frag` is not compiled in, but `gnrc_sixlowpan_frag_rb`,
the intervals allocated in the reassembly buffer and inherited by the
virtual reassembly buffer are never released.
@miri64 miri64 added Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors) Area: network Area: Networking labels Nov 29, 2019
@miri64 miri64 added this to the Release 2020.01 milestone Nov 29, 2019
@miri64 miri64 requested review from benpicco and cgundogan November 29, 2019 17:08
@benpicco benpicco added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Dec 2, 2019
@miri64
Copy link
Member Author

miri64 commented Dec 3, 2019

From #12648 (comment):

There is still an issue with the interval buffer of the (virtual) reassembly buffer running full (and are never properly released again) when the nodes are flooded. Partly I was able to fix it in #12848, however it isn't fixing all occurrences of that problem.

After two days of bug hunting I finally found that leak and provided a fix (a4e41b8) here, as it was an issue within the VRB, as resends are a feature of SFR, I added the test case test_sixlo_recv_fwd__1st_frag_comp__resend() as a regression test for that to the tests there.

@miri64 miri64 changed the title gnrc_sixlowpan_frag_vrb: call base_rm() with gnrc_sixlowpan_frag_rb gnrc_sixlowpan_frag_vrb: fix issues with interval marker inherited from base Dec 3, 2019
@fjmolinas fjmolinas self-requested a review January 14, 2020 21:18
@fjmolinas
Copy link
Contributor

I'm getting a segmention fault on this one (or hard fault if none native).

s
START
../home/francisco/workspace/RIOT/tests/unittests/../../Makefile.include:683: recipe for target 'term' failed
make: *** [term] Segmentation fault (core dumped)
make: Leaving directory '/home/francisco/workspace/RIOT/tests/unittests'

@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

The latest fixup should fix that. It unrolls the definition of LL_APPEND and checks during each iteration step, if base->ints is already part of the list of vrb->super.ints.

@fjmolinas fjmolinas added CI: run tests If set, CI server will run tests on hardware for the labeled PR CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Jan 15, 2020
@fjmolinas
Copy link
Contributor

Shouldn;t it be;

TEST_ASSERT_EQUAL_INT(116U, _interval.end)

@fjmolinas
Copy link
Contributor

I'm getting

......
vrb_tests.test_vrb_rm (tests/unittests/tests-gnrc_sixlowpan_frag_vrb/tests-gnrc_sixlowpan_frag_vrb.c 158) exp 0 was 116
.
run 7 failures 1

@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

Did you patch in the patch above and added the gnrc_sixlowpan_frag_rb module? If the entry is deleted _interval.end should be 0 in that case.

@fjmolinas
Copy link
Contributor

Did you patch in the patch above and added the gnrc_sixlowpan_frag_rb module? If the entry is deleted _interval.end should be 0 in that case.

My bad I though those where two test cases:

  • patch + gnrc_sixlowpan_frag_rb
  • patch

sorry

@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

Did you patch in the patch above and added the gnrc_sixlowpan_frag_rb module? If the entry is deleted _interval.end should be 0 in that case.

My bad I though those where two test cases:

* patch + gnrc_sixlowpan_frag_rb

* patch

sorry

There are two test cases, but they are

  • unittests unmodified
  • patch + gnrc_sixlowpan_frag_rb

;-)

@fjmolinas
Copy link
Contributor

fjmolinas commented Jan 15, 2020

Test case 1 works, but I'm still getting the hardfault with test case 2:

EDIT apparently I hadn't cleaned properly.

@fjmolinas
Copy link
Contributor

Sorry for all the noise, I was compiling with -j3 and UNITESTS doesn't respect our usual rules order. I''l try to fix that as well parallely.

  • patch USEMODULE=gnrc_sixlowpan_frag_rb make -C tests/unittests/ tests-gnrc_sixlowpan_frag_vrb flash-only test All good.
Details
make: Entering directory '/home/francisco/workspace/RIOT/tests/unittests'
Building application "tests_unittests" for "native" with MCU "native".

"make" -C /home/francisco/workspace/RIOT/boards/native
"make" -C /home/francisco/workspace/RIOT/boards/native/drivers
"make" -C /home/francisco/workspace/RIOT/core
"make" -C /home/francisco/workspace/RIOT/cpu/native
"make" -C /home/francisco/workspace/RIOT/cpu/native/periph
"make" -C /home/francisco/workspace/RIOT/cpu/native/vfs
"make" -C /home/francisco/workspace/RIOT/drivers
"make" -C /home/francisco/workspace/RIOT/drivers/periph_common
"make" -C /home/francisco/workspace/RIOT/sys
"make" -C /home/francisco/workspace/RIOT/sys/div
"make" -C /home/francisco/workspace/RIOT/sys/embunit
"make" -C /home/francisco/workspace/RIOT/sys/fmt
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/netapi
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/netif
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/netif/hdr
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/netreg
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/network_layer/sixlowpan/frag/fb
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/network_layer/sixlowpan/frag/rb
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/network_layer/sixlowpan/frag/vrb
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/pkt
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/pktbuf
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/pktbuf_static
"make" -C /home/francisco/workspace/RIOT/sys/net/link_layer/l2util
"make" -C /home/francisco/workspace/RIOT/sys/net/netif
"make" -C /home/francisco/workspace/RIOT/sys/test_utils/interactive_sync
"make" -C /home/francisco/workspace/RIOT/sys/xtimer
"make" -C /home/francisco/workspace/RIOT/tests/unittests/tests-gnrc_sixlowpan_frag_vrb
   text	   data	    bss	    dec	    hex	filename
  36283	    768	  48444	  85495	  14df7	/home/francisco/workspace/RIOT/tests/unittests/bin/native/tests_unittests.elf
true 
r
/home/francisco/workspace/RIOT/tests/unittests/bin/native/tests_unittests.elf  
RIOT native interrupts/signals initialized.
LED_RED_OFF
LED_GREEN_ON
RIOT native board initialized.
RIOT native hardware initialization complete.

main(): This is RIOT! (Version: 2020.01-devel-1194-g749f5-pr-12848)
Help: Press s to start test, r to print it is ready
READY
s
START
.......
OK (7 tests)

make: Leaving directory '/home/francisco/workspace/RIOT/tests/unittests'
  • No patch make -C tests/unittests/ tests-gnrc_sixlowpan_frag_vrb flash-only test all good
Details
make: Entering directory '/home/francisco/workspace/RIOT/tests/unittests'
Building application "tests_unittests" for "native" with MCU "native".

"make" -C /home/francisco/workspace/RIOT/boards/native
"make" -C /home/francisco/workspace/RIOT/boards/native/drivers
"make" -C /home/francisco/workspace/RIOT/core
"make" -C /home/francisco/workspace/RIOT/cpu/native
"make" -C /home/francisco/workspace/RIOT/cpu/native/periph
"make" -C /home/francisco/workspace/RIOT/cpu/native/vfs
"make" -C /home/francisco/workspace/RIOT/drivers
"make" -C /home/francisco/workspace/RIOT/drivers/periph_common
"make" -C /home/francisco/workspace/RIOT/sys
"make" -C /home/francisco/workspace/RIOT/sys/div
"make" -C /home/francisco/workspace/RIOT/sys/embunit
"make" -C /home/francisco/workspace/RIOT/sys/fmt
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/netapi
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/netif
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/netif/hdr
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/netreg
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/network_layer/sixlowpan/frag/fb
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/network_layer/sixlowpan/frag/vrb
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/pkt
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/pktbuf
"make" -C /home/francisco/workspace/RIOT/sys/net/gnrc/pktbuf_static
"make" -C /home/francisco/workspace/RIOT/sys/net/link_layer/l2util
"make" -C /home/francisco/workspace/RIOT/sys/net/netif
"make" -C /home/francisco/workspace/RIOT/sys/test_utils/interactive_sync
"make" -C /home/francisco/workspace/RIOT/sys/xtimer
"make" -C /home/francisco/workspace/RIOT/tests/unittests/tests-gnrc_sixlowpan_frag_vrb
   text	   data	    bss	    dec	    hex	filename
  36023	    748	  48444	  85215	  14cdf	/home/francisco/workspace/RIOT/tests/unittests/bin/native/tests_unittests.elf
true 
r
/home/francisco/workspace/RIOT/tests/unittests/bin/native/tests_unittests.elf  
RIOT native interrupts/signals initialized.
LED_RED_OFF
LED_GREEN_ON
RIOT native board initialized.
RIOT native hardware initialization complete.

main(): This is RIOT! (Version: 2020.01-devel-1194-g749f5-pr-12848)
Help: Press s to start test, r to print it is ready
READY
s
START
.......
OK (7 tests)

make: Leaving directory '/home/francisco/workspace/RIOT/tests/unittests'

Copy link
Contributor

@fjmolinas fjmolinas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not very acquainted with gnrc_frag logic but the code changes make sense and I understand the represented issue. @miri64 please squash.

@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

Squashed.

@miri64 miri64 force-pushed the gnrc_sixlowpan_frag_rb/fix/interval-fixes branch from 749f534 to 05d0c48 Compare January 15, 2020 12:54
@fjmolinas fjmolinas removed the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Jan 15, 2020
@fjmolinas
Copy link
Contributor

Travis complained:

Running './dist/tools/cppcheck/check.sh' x

Command output:

	sys/net/gnrc/network_layer/sixlowpan/frag/vrb/gnrc_sixlowpan_frag_vrb.c:100: warning (nullPointer): Possible null pointer dereference: tmp

Please re-schedule build when addressed.

@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

Is cppcheck drunk? This is a false positive (and a pretty weird one). I check tmp for not being NULL in the line before...

@miri64 miri64 force-pushed the gnrc_sixlowpan_frag_rb/fix/interval-fixes branch from 05d0c48 to 98db58c Compare January 15, 2020 13:42
@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

I added a suppression comment. I'll have an I on the Travis output in case this wasn't enough.

@fjmolinas
Copy link
Contributor

Is cppcheck drunk? This is a false positive (and a pretty weird one). I check tmp for not being NULL in the line before...

I though the same thing hahaha...

@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

That did not seem to be it :-/.

@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

It still points to line 100 though... :-/

Otherwise the list in `base->ints` will get lost.
@miri64 miri64 force-pushed the gnrc_sixlowpan_frag_rb/fix/interval-fixes branch from 98db58c to d9ecc0b Compare January 15, 2020 14:03
@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

I think cppcheck is getting lost in the line numbers. The current version works in my local setup (cppcheck v1.88).

@miri64 miri64 added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Jan 15, 2020
@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

It's passing now.

@miri64
Copy link
Member Author

miri64 commented Jan 15, 2020

Errors are unrelated
    total cpu runtime: 2d:19h:28m:55.7s
---
--- run_test job results (4 failed, 171 passed, 175 total):
    failed:
    tests/pkg_tensorflow-lite/esp32-wroom-32:gnu
    tests/pkg_tensorflow-lite/nrf52dk:llvm
    tests/netstats_l2/esp32-wroom-32:gnu
    examples/suit_update/samr21-xpro:gnu

    passed:
    tests/evtimer_underflow/esp32-wroom-32:gnu
    tests/pkg_cn-cbor/esp32-wroom-32:gnu
    tests/lwip_sock_udp/esp32-wroom-32:gnu
    tests/cb_mux/esp32-wroom-32:gnu
    tests/periph_hwrng/esp32-wroom-32:gnu
    tests/pkg_libb2/esp32-wroom-32:gnu
    tests/shell/esp32-wroom-32:gnu
    tests/pipe/esp32-wroom-32:gnu
    tests/pkg_u8g2/esp32-wroom-32:gnu
    tests/buttons/esp32-wroom-32:gnu
    tests/ssp/esp32-wroom-32:gnu
    tests/cpp_ext/esp32-wroom-32:gnu
    tests/posix_time/esp32-wroom-32:gnu
    tests/pthread_barrier/esp32-wroom-32:gnu
    tests/pkg_littlefs/esp32-wroom-32:gnu
    tests/gnrc_netif/esp32-wroom-32:gnu
    tests/pkg_spiffs/esp32-wroom-32:gnu
    tests/driver_grove_ledbar/esp32-wroom-32:gnu
    tests/progress_bar/esp32-wroom-32:gnu
    tests/pkg_ubasic/esp32-wroom-32:gnu
    tests/gnrc_sock_async_event/esp32-wroom-32:gnu
    tests/blob/esp32-wroom-32:gnu
    tests/pthread/esp32-wroom-32:gnu
    tests/heap_cmd/esp32-wroom-32:gnu
    tests/cond_order/esp32-wroom-32:gnu
    tests/msg_try_receive/esp32-wroom-32:gnu
    tests/event_wait_timeout/esp32-wroom-32:gnu
    tests/pkg_ucglib/esp32-wroom-32:gnu
    tests/pkg_lora-serialization/esp32-wroom-32:gnu
    tests/bench_msg_pingpong/esp32-wroom-32:gnu
    tests/cpp11_mutex/esp32-wroom-32:gnu
    tests/kconfig/esp32-wroom-32:gnu
    tests/pkg_jsmn/esp32-wroom-32:gnu
    tests/bench_runtime_coreapis/esp32-wroom-32:gnu
    tests/pkg_utensor/esp32-wroom-32:gnu
    tests/gnrc_ipv6_nib/esp32-wroom-32:gnu
    tests/od/esp32-wroom-32:gnu
    tests/gnrc_sock_ip/esp32-wroom-32:gnu
    tests/pkg_nanocbor/esp32-wroom-32:gnu
    tests/pkg_libfixmath/esp32-wroom-32:gnu
    tests/devfs/esp32-wroom-32:gnu
    tests/pkg_cifra/esp32-wroom-32:gnu
    tests/gnrc_ipv6_fwd_w_sub/esp32-wroom-32:gnu
    tests/log_color/esp32-wroom-32:gnu
    tests/stdin/esp32-wroom-32:gnu
    tests/gnrc_sock_neterr/esp32-wroom-32:gnu
    tests/pkg_hacl/esp32-wroom-32:gnu
    tests/bitarithm_timings/esp32-wroom-32:gnu
    tests/bench_mutex_pingpong/esp32-wroom-32:gnu
    tests/isr_yield_higher/esp32-wroom-32:gnu
    tests/pkg_nanopb/esp32-wroom-32:gnu
    tests/gnrc_sixlowpan_frag/esp32-wroom-32:gnu
    tests/gnrc_sixlowpan_frag/nrf52dk:gnu
    tests/gnrc_sixlowpan_frag/nrf52dk:llvm
    tests/gnrc_sixlowpan_frag/samr21-xpro:gnu
    tests/gnrc_sixlowpan_frag/samr21-xpro:llvm
    tests/float/esp32-wroom-32:gnu
    tests/driver_my9221/esp32-wroom-32:gnu
    tests/pkg_tinycbor/esp32-wroom-32:gnu
    tests/pkg_micro-ecc-with-hwrng/esp32-wroom-32:gnu
    tests/cpp11_condition_variable/esp32-wroom-32:gnu
    tests/rmutex/esp32-wroom-32:gnu
    tests/embunit/esp32-wroom-32:gnu
    tests/evtimer_msg/esp32-wroom-32:gnu
    tests/pkg_micro-ecc/esp32-wroom-32:gnu
    tests/bench_thread_flags_pingpong/esp32-wroom-32:gnu
    tests/pthread_condition_variable/esp32-wroom-32:gnu
    tests/events/esp32-wroom-32:gnu
    tests/periph_timer/esp32-wroom-32:gnu
    tests/pkg_qdsa/esp32-wroom-32:gnu
    tests/pkg_qdsa/samr21-xpro:gnu
    tests/pkg_cayenne-lpp/esp32-wroom-32:gnu
    tests/lwip_sock_tcp/esp32-wroom-32:gnu
    tests/libc_newlib/esp32-wroom-32:gnu
    tests/gnrc_ndp/esp32-wroom-32:gnu
    tests/bench_thread_yield_pingpong/esp32-wroom-32:gnu
    tests/pthread_cooperation/esp32-wroom-32:gnu
    tests/pthread_tls/esp32-wroom-32:gnu
    tests/posix_semaphore/esp32-wroom-32:gnu
    tests/pkg_monocypher/esp32-wroom-32:gnu
    tests/pkg_minmea/esp32-wroom-32:gnu
    tests/pkg_heatshrink/esp32-wroom-32:gnu
    tests/cpp_ctors/esp32-wroom-32:gnu
    tests/cpp11_thread/esp32-wroom-32:gnu
    tests/bench_sched_nop/esp32-wroom-32:gnu
    tests/bloom_bytes/esp32-wroom-32:gnu
    tests/periph_gpio/esp32-wroom-32:gnu
    tests/nhdp/esp32-wroom-32:gnu
    tests/ps_schedstatistics/esp32-wroom-32:gnu
    tests/log_printfnoformat/esp32-wroom-32:gnu
    tests/irq/esp32-wroom-32:gnu
    tests/fmt_print/esp32-wroom-32:gnu
    tests/netdev_test/esp32-wroom-32:gnu
    tests/cb_mux_bench/esp32-wroom-32:gnu
    tests/lwip_sock_ip/esp32-wroom-32:gnu
    tests/pkg_libhydrogen/esp32-wroom-32:gnu
    tests/l2util/esp32-wroom-32:gnu
    tests/pthread_rwlock/esp32-wroom-32:gnu
    tests/riotboot_hdr/esp32-wroom-32:gnu
    tests/mutex_unlock_and_sleep/esp32-wroom-32:gnu
    tests/malloc/esp32-wroom-32:gnu
    tests/periph_cpuid/esp32-wroom-32:gnu
    tests/pkg_libcoap/esp32-wroom-32:gnu
    tests/cpp_exclude/esp32-wroom-32:gnu
    tests/pkg_tiny-asn1/esp32-wroom-32:gnu
    tests/msg_avail/esp32-wroom-32:gnu
    tests/build_system_cflags_spaces/esp32-wroom-32:gnu
    tests/thread_msg/esp32-wroom-32:gnu
    tests/driver_ds1307/esp32-wroom-32:gnu
    tests/msg_send_receive/esp32-wroom-32:gnu
    tests/pthread_flood/esp32-wroom-32:gnu
    tests/rmutex_cpp/esp32-wroom-32:gnu
    tests/thread_cooperation/esp32-wroom-32:gnu
    tests/pkg_relic/esp32-wroom-32:gnu
    tests/pkg_relic/samr21-xpro:gnu
    tests/pkg_relic/nrf52dk:gnu
    tests/memarray/esp32-wroom-32:gnu
    tests/gnrc_ipv6_nib_6ln/esp32-wroom-32:gnu
    tests/gnrc_sixlowpan_iphc_w_vrb/nrf52dk:gnu
    tests/gnrc_sixlowpan_iphc_w_vrb/esp32-wroom-32:gnu
    tests/gnrc_sixlowpan_iphc_w_vrb/nrf52dk:llvm
    tests/gnrc_sixlowpan_iphc_w_vrb/samr21-xpro:gnu
    tests/gnrc_sixlowpan_iphc_w_vrb/samr21-xpro:llvm
    tests/pkg_c25519/esp32-wroom-32:gnu
    tests/gnrc_sock_udp/esp32-wroom-32:gnu
    tests/periph_rtc/esp32-wroom-32:gnu
    examples/suit_update/nrf52dk:gnu
    examples/suit_update/samr21-xpro:llvm
    examples/suit_update/nrf52dk:llvm
    tests/pkg_flatbuffers/esp32-wroom-32:gnu
    tests/mutex_order/esp32-wroom-32:gnu
    tests/gnrc_sixlowpan/samr21-xpro:gnu
    tests/gnrc_sixlowpan/nrf52dk:llvm
    tests/gnrc_sixlowpan/nrf52dk:gnu
    tests/gnrc_sixlowpan/esp32-wroom-32:gnu
    tests/gnrc_sixlowpan/samr21-xpro:llvm
    tests/sys_crypto/esp32-wroom-32:gnu
    tests/thread_exit/esp32-wroom-32:gnu
    tests/thread_msg_block_race/esp32-wroom-32:gnu
    tests/thread_basic/esp32-wroom-32:gnu
    tests/thread_msg_seq/esp32-wroom-32:gnu
    tests/thread_flood/esp32-wroom-32:gnu
    tests/sys_arduino/esp32-wroom-32:gnu
    tests/pthread_cleanup/esp32-wroom-32:gnu
    tests/xtimer_msg_receive_timeout/esp32-wroom-32:gnu
    tests/thread_flags/esp32-wroom-32:gnu
    tests/thread_race/esp32-wroom-32:gnu
    tests/bench_sizeof_coretypes/esp32-wroom-32:gnu
    tests/xtimer_periodic_wakeup/esp32-wroom-32:gnu
    tests/xtimer_reset/esp32-wroom-32:gnu
    tests/pkg_umorse/esp32-wroom-32:gnu
    tests/sched_testing/esp32-wroom-32:gnu
    tests/unittests/nrf52dk:llvm
    tests/unittests/nrf52dk:gnu
    tests/unittests/esp32-wroom-32:gnu
    tests/xtimer_usleep/esp32-wroom-32:gnu
    tests/xtimer_mutex_lock_timeout/esp32-wroom-32:gnu
    tests/struct_tm_utility/esp32-wroom-32:gnu
    tests/thread_flags_xtimer/esp32-wroom-32:gnu
    tests/test_tools/esp32-wroom-32:gnu
    tests/thread_msg_block_w_queue/esp32-wroom-32:gnu
    tests/thread_msg_block_wo_queue/esp32-wroom-32:gnu
    tests/thread_zombie/esp32-wroom-32:gnu
    tests/xtimer_hang/esp32-wroom-32:gnu
    tests/trickle/esp32-wroom-32:gnu
    tests/vfs_plus_stdio/esp32-wroom-32:gnu
    tests/xtimer_now64_continuity/esp32-wroom-32:gnu
    tests/xtimer_remove/esp32-wroom-32:gnu
    tests/xtimer_usleep_short/esp32-wroom-32:gnu
    tests/bench_xtimer/esp32-wroom-32:gnu
    tests/xtimer_msg/esp32-wroom-32:gnu

I rerun without tests.

@miri64 miri64 added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: run tests If set, CI server will run tests on hardware for the labeled PR CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Jan 15, 2020
@fjmolinas
Copy link
Contributor

My ACK stil stand, feel free to merge when it is green.

@aabadie aabadie merged commit fc45c2c into RIOT-OS:master Jan 15, 2020
@miri64 miri64 deleted the gnrc_sixlowpan_frag_rb/fix/interval-fixes branch January 15, 2020 22:20
if (tmp == base->ints) {
tmp = NULL;
}
/* cppcheck-suppress nullPointer
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@miri64 Can you confirm, just for my sake, why this comment is correct?

tmp can't clearly be a NULL pointer here

If that statement is true then the if right above should never be taken.

Or did you perhaps forgot to add a break?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mhh... now that you say that, it seems as clear as day ^^". Yes, there is a break missing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #14683

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW Thanks to Coverity Scan

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, cppcheck also picked it up, I was just stupid ;-P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: network Area: Networking CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants