bug: compression_level parameter silently ignored in data_compress() #29

Closed
opened 2026-07-20 14:57:31 +02:00 by TapTap · 0 comments
Owner

In src/shared/compression.c line 10, the compression_level parameter is explicitly cast to (void) and never used by ZSTD_compressStream2(). This means all compression levels (1-22) produce identical output — users cannot actually control compression speed vs. ratio.

Data* data_compress(Data* data_to_compress, int compression_level) {
  (void)compression_level;  // SILENTLY IGNORED

Users can specify -c 1 through -c 22 on the CLI but it has zero effect. This is a silent correctness bug.

Location: src/shared/compression.c:10

Fix: Add ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, compression_level); after creating the compression context.

Severity: medium

In `src/shared/compression.c` line 10, the `compression_level` parameter is explicitly cast to `(void)` and never used by `ZSTD_compressStream2()`. This means all compression levels (1-22) produce identical output — users cannot actually control compression speed vs. ratio. ```c Data* data_compress(Data* data_to_compress, int compression_level) { (void)compression_level; // SILENTLY IGNORED ``` Users can specify `-c 1` through `-c 22` on the CLI but it has zero effect. This is a silent correctness bug. **Location:** `src/shared/compression.c:10` **Fix:** Add `ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, compression_level);` after creating the compression context. **Severity:** medium
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#29