From 182e2d45678d0487be71370c37b88daca3d2c54b Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sat, 12 Oct 2024 16:23:05 +0200 Subject: Make gendata and co safer by checking buffer size --- src/solvers/h48/solve.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/solvers/h48/solve.h') diff --git a/src/solvers/h48/solve.h b/src/solvers/h48/solve.h index 3948b15..f2babdf 100644 --- a/src/solvers/h48/solve.h +++ b/src/solvers/h48/solve.h @@ -21,7 +21,8 @@ STATIC uint32_t allowednextmove_h48(uint8_t *, uint8_t, uint32_t); STATIC void solve_h48_appendsolution(dfsarg_solveh48_t *); STATIC_INLINE bool solve_h48_stop(dfsarg_solveh48_t *); STATIC int64_t solve_h48_dfs(dfsarg_solveh48_t *); -STATIC int64_t solve_h48(cube_t, int8_t, int8_t, int8_t, const void *, char *); +STATIC int64_t solve_h48(cube_t, int8_t, int8_t, + int8_t, uint64_t, const void *, uint64_t, char *); STATIC uint32_t allowednextmove_h48(uint8_t *moves, uint8_t n, uint32_t h48branch) @@ -163,7 +164,9 @@ solve_h48( int8_t minmoves, int8_t maxmoves, int8_t maxsolutions, + uint64_t data_size, const void *data, + uint64_t solutions_size, char *solutions ) { @@ -171,9 +174,9 @@ solve_h48( dfsarg_solveh48_t arg; tableinfo_t info; - if(!readtableinfo_n(data, 2, &info)) { + if(readtableinfo_n(data_size, data, 2, &info) != NISSY_OK) { LOG("solve_h48: error reading table\n"); - return 0; + return NISSY_ERROR_DATA; } arg = (dfsarg_solveh48_t) { -- cgit v1.3