nyx/tests/fixtures/state/use_closed_branch.c
Eli Peter 1bbe4b1cfb
Phase 1 (#33)
* chore: Exclude CLAUDE.md from Cargo.toml

* feat: add callgraph module and integrate into main analysis flow

* feat: enhance CLI with new severity filtering and analysis modes

* feat: update CHANGELOG with recent enhancements and fixes to severity filtering and output handling

* feat: implement state-model dataflow analysis for resource lifecycle and auth state

* feat: enhance diagnostic output formatting and add evidence structure

* feat: implement attack surface ranking for diagnostics with scoring and sorting

* feat: add comprehensive documentation for installation, usage, and rules reference

* feat: add multiple language support for command execution and evaluation endpoints

* feat: implement inline suppression for findings using `nyx:ignore` comments

* feat: add confidence levels to AST patterns and update output structure

* feat: implement low-noise prioritization system with category filtering, rollup grouping, and configurable budgets

* feat: bump version to 0.4.0 and update changelog with new features and improvements

* feat: add dead code allowances to various functions in mod.rs and real_world_tests.rs
2026-02-25 21:16:36 -05:00

16 lines
534 B
C

#include <stdio.h>
/* fclose in one branch, then unconditional fread after.
True path: fclose(f) → fread(CLOSED) = use-after-close.
False path: fread(OPEN) = fine.
Converged state at fread: OPEN|CLOSED (join).
Expected: NO state-use-after-close (conservative: join masks it).
Expected: state-resource-leak-possible (false path never closes). */
void use_closed_branch(int cond) {
FILE *f = fopen("data.txt", "r");
if (cond) {
fclose(f);
}
char buf[256];
fread(buf, 1, sizeof(buf), f);
}