Skip to content

Commit 5b1be52

Browse files
committed
fix(c-cli): drop __EMSCRIPTEN__-guarded buffer_free from the container path
The standalone container block called buffer_free, which is #ifndef __EMSCRIPTEN__ (guarded out of the WASM build) — breaking the emscripten compile and the default/ nix/Garnix aggregates that depend on it. The normal main flow never frees these buffers (the CLI exits, OS reclaims), so the container path follows suit; free(clean) (a plain malloc) stays. WASM + test-container-c green again.
1 parent dba3c64 commit 5b1be52

1 file changed

Lines changed: 3 additions & 7 deletions

File tree

src/printable_binary.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1780,26 +1780,24 @@ int main(int argc, char *argv[]) {
17801780
if (opts.decode_mode) {
17811781
size_t dlen;
17821782
const char *draw = cj_get_string(input.data, input.size, "data", &dlen);
1783-
if (!draw) { fprintf(stderr, "Error: not a printable-binary-file container (missing 'data')\n"); buffer_free(&input); return 1; }
1783+
if (!draw) { fprintf(stderr, "Error: not a printable-binary-file container (missing 'data')\n"); return 1; }
17841784
size_t clen;
17851785
char *clean = cj_canonical(draw, dlen, &clen);
17861786
size_t celen;
17871787
const char *ce = cj_get_string(input.data, input.size, "crc32_encoded", &celen);
17881788
if (ce) {
17891789
char hx[9]; snprintf(hx, 9, "%08x", (unsigned int)pb_crc32(clean, clen));
1790-
if (celen != 8 || memcmp(hx, ce, 8) != 0) { free(clean); buffer_free(&input); fprintf(stderr, "Error: container crc32_encoded mismatch (data corrupted)\n"); return 1; }
1790+
if (celen != 8 || memcmp(hx, ce, 8) != 0) { free(clean); fprintf(stderr, "Error: container crc32_encoded mismatch (data corrupted)\n"); return 1; }
17911791
}
17921792
buffer_t dec = decode_data((uint8_t *)clean, clen, false);
17931793
free(clean);
17941794
size_t colen;
17951795
const char *co = cj_get_string(input.data, input.size, "crc32", &colen);
17961796
if (co) {
17971797
char hx[9]; snprintf(hx, 9, "%08x", (unsigned int)pb_crc32(dec.data, dec.size));
1798-
if (colen != 8 || memcmp(hx, co, 8) != 0) { buffer_free(&dec); buffer_free(&input); fprintf(stderr, "Error: container crc32 mismatch (decoded data corrupted)\n"); return 1; }
1798+
if (colen != 8 || memcmp(hx, co, 8) != 0) { fprintf(stderr, "Error: container crc32 mismatch (decoded data corrupted)\n"); return 1; }
17991799
}
18001800
fwrite(dec.data, 1, dec.size, stdout);
1801-
buffer_free(&dec);
1802-
buffer_free(&input);
18031801
return 0;
18041802
} else {
18051803
options_t enc_opts = opts;
@@ -1820,8 +1818,6 @@ int main(int argc, char *argv[]) {
18201818
printf("\",\n \"byte_length\": %zu,\n \"crc32\": \"%s\",\n \"crc32_encoded\": \"%s\",\n \"data\": \"", input.size, crc_orig, crc_enc);
18211819
fwrite(enc.data, 1, enc.size, stdout);
18221820
printf("\"\n}\n");
1823-
buffer_free(&enc);
1824-
buffer_free(&input);
18251821
return 0;
18261822
}
18271823
}

0 commit comments

Comments
 (0)