#include <zstd.h>
+#ifdef __FreeBSD__
+#include "capsicum.c.in"
+#include <capsicum_helpers.h>
+#include <err.h>
+#include <sysexits.h>
+#endif // __FreeBSD__
+
int
main(int argc, char **argv)
{
+ FILE *fdOff = fdopen(3, "wb");
+#ifdef __FreeBSD__
+ if ((fdOff != NULL) && (caph_limit_stream(3, CAPH_WRITE)) != 0) {
+ errx(EX_OSERR, "can not caph_limit_stream(3)");
+ };
+ capsicum_start();
+#endif // __FreeBSD__
+
ZSTD_DCtx *ctx = ZSTD_createDCtx();
if (ctx == NULL) {
fputs("can not initialize ZSTD_DCtx\n", stderr);
return 1;
};
- FILE *fdOff = fdopen(3, "wb");
int rc = EXIT_FAILURE;
- uint8_t *bufIn = NULL;
- uint8_t *bufOut = NULL;
+ char *bufIn = NULL;
+ char *bufOut = NULL;
const size_t bufInSize = ZSTD_DStreamInSize();
bufIn = malloc(bufInSize);
if (bufIn == NULL) {
if (n >= 8 && le32dec(bufIn) == 0x184D2A5D) {
// dictionary frame
size_t dictSize = (size_t)le32dec(bufIn + 4);
- uint8_t *dict = malloc(dictSize);
+ char *dict = malloc(dictSize);
if (dict == NULL) {
fprintf(stderr, "insufficient memory for dictionary: %zu\n", dictSize);
goto Exit;
free(dict);
goto Exit;
};
- uint8_t *buf = malloc(bufSize);
+ char *buf = malloc(bufSize);
if (buf == NULL) {
fprintf(
stderr, "insufficient memory for dictionary: %llu\n", bufSize);