ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
epub_zip_guard.c
Go to the documentation of this file.
1
30#include <stddef.h>
31#include <stdint.h>
32
33#include "epub_internal.h"
34#include "ra8_check.h"
35#include "ra8_decomp_limits.h"
36
38static const char* const s_tag_zip_guard = "epub_zip";
39
41{
42 RA8_CHECK_NULL_PTR(zip, s_tag_zip_guard, "guard archive: null zip");
44 const mz_uint num = mz_zip_reader_get_num_files(zip);
45 if ((uint64_t)num > (uint64_t)lim.max_entries) {
47 }
48 return k_ra8_ok;
49}
50
51RA8_PRIV ra8_err_t priv_epub_zip_guard_entry(const mz_zip_archive_file_stat* st)
52{
53 RA8_CHECK_NULL_PTR(st, s_tag_zip_guard, "guard entry: null stat");
55 return ra8_decomp_check_declared(&lim, (uint64_t)st->m_comp_size, (uint64_t)st->m_uncomp_size);
56}
Test-access surface for epub internal helpers (MC/DC).
ra8_err_t priv_epub_zip_guard_entry(const mz_zip_archive_file_stat *st)
Guard one ZIP entry's declared sizes against the policy.
static const char *const s_tag_zip_guard
Log tag for ZIP-guard diagnostics.
ra8_err_t priv_epub_zip_guard_archive(mz_zip_archive *zip)
Guard a just-opened ZIP archive against the decompression policy.
#define RA8_PRIV
Module-private helper: shared across TUs but only inside one library.
Validation and Error-Checking Macros for ra8-firmware.
#define RA8_CHECK_NULL_PTR(ptr, tag, message)
Reject nullptr pointer, returning k_ra8_err_null_ptr.
Definition ra8_check.h:243
Unified decompression-limits policy: one bound set for every decoder.
ra8_decomp_limits_t ra8_decomp_limits_default(void)
The owner-approved default decompression policy.
ra8_err_t ra8_decomp_check_declared(const ra8_decomp_limits_t *limits, uint64_t comp_size, uint64_t out_size)
Header-level check of a member's declared sizes against a policy.
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
Definition ra8_err.h:119
@ k_ra8_err_decomp_entries
Archive entry-count cap breached (ra8_decomp_limits_t).
Definition ra8_err.h:509
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
One decompression policy: the five resource bounds decoders enforce.
uint32_t max_entries
Per-archive enumerated-entry cap.