From c93823faef044150e1b232928d225ff5ff297e6c Mon Sep 17 00:00:00 2001 From: Simon Arlott Date: Sat, 30 Sep 2023 12:18:51 +0100 Subject: [PATCH] Fix integer underflow --- src/libspf2/spf_compile.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libspf2/spf_compile.c b/src/libspf2/spf_compile.c index b08ffe2..d401028 100644 --- a/src/libspf2/spf_compile.c +++ b/src/libspf2/spf_compile.c @@ -455,7 +455,11 @@ SPF_c_parse_var(SPF_response_t *spf_response, SPF_data_var_t *data, /* Magic numbers for x/Nc in gdb. */ \ data->ds.__unused0 = 0xba; data->ds.__unused1 = 0xbe; \ dst = SPF_data_str( data ); \ - ds_avail = _avail - sizeof(SPF_data_t); \ + if ((_avail) < sizeof(SPF_data_t)) \ + return SPF_response_add_error_ptr(spf_response, \ + SPF_E_BIG_STRING, NULL, src, \ + "Out of memory for string literal");\ + ds_avail = (_avail) - sizeof(SPF_data_t); \ ds_len = 0; \ } while(0)