[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Use of assert without NDEBUG,
Jeffrey Walton <=