guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Use of assert without NDEBUG


From: Jeffrey Walton
Subject: Use of assert without NDEBUG
Date: Tue, 24 Oct 2017 11:58:03 -0400

Auditing Guile reveals it is using asserts and lacks NDEBUG by default:

$ grep -IR assert | grep '\.c'
...
libguile/struct.c:#include <assert.h>
libguile/struct.c:  assert (len % 2 == 0);
libguile/weak-set.c:#include <assert.h>
libguile/weak-set.c:  assert (set->n_items < size);
libguile/vports.c:#include <assert.h>
libguile/vports.c:      assert (len > 0 && len <= ENCODE_BUF_SIZE);
libguile/numbers.c:#include <assert.h>
libguile/numbers.c:    assert (0);
libguile/numbers.c:    assert (0);
libguile/numbers.c:    assert (0);
libguile/numbers.c:  assert (0);

Production software needs to run with NDEBUG to remove the debugging
and diagnostics. If assert() fires then abort() is called, which
results in a core dump. On some platforms, like Apple, Ubuntu and
Windows, the program's data gets sent to an external error reporting
service. Effectively the platform egresses all the program's sensitive
data.

Please don't use assert's in production software.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]