Skip to content

Commit

Permalink
Added an assert for truthy-preserving bool conversions
Browse files Browse the repository at this point in the history
This has caught enough people that an explicit assert is warranted.
How littlefs, a c99 project, should be integrated with c89 projects
is still an open question, but no one deserves to debug this sort of
undetected casting issue.

Found by johnernberg and XinStellaris
  • Loading branch information
geky committed Apr 18, 2023
1 parent 6a53d76 commit aae897f
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions lfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -3905,6 +3905,12 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
lfs->cfg = cfg;
int err = 0;

// check that bool is a truthy-preserving type
//
// note the most common reason for this failure is a before-c99 compiler,
// which littlefs currently does not support
LFS_ASSERT((bool)0x80000000);

// validate that the lfs-cfg sizes were initiated properly before
// performing any arithmetic logics with them
LFS_ASSERT(lfs->cfg->read_size != 0);
Expand Down

0 comments on commit aae897f

Please sign in to comment.