MCPcopy Create free account
hub / github.com/OISF/libhtp / bstrDiff

Function bstrDiff

test/fuzz/fuzz_diff.c:274–304  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

272void libhtprsFreeFuzzRun(void *t);
273
274static int bstrDiff(void* rsbstr, bstr * cbstr, const char *field) {
275 if (rsbstr == NULL && cbstr == NULL) {
276 return 0;
277 }
278 if (rsbstr == NULL) {
279 printf("Assertion failure: Bstr %s rust is zero\n", field);
280 return 1;
281 }
282 if (cbstr == NULL) {
283 printf("Assertion failure: Bstr %s C is zero\n", field);
284 return 1;
285 }
286 size_t len = bstr_len(cbstr);
287 uint8_t * rsptr = bstr_ptr_rs(rsbstr);
288 uint8_t * cptr = bstr_ptr(cbstr);
289 if (bstr_len_rs(rsbstr) != len) {
290 fprint_raw_data(stdout, "c=", cptr, len);
291 fprint_raw_data(stdout, "rust=", rsptr, bstr_len_rs(rsbstr));
292 printf("Assertion failure: Bstr %s lengths are different %zu vs %zu\n", field, bstr_len_rs(rsbstr), len);
293 return 1;
294 }
295 for (size_t i=0; i<len; i++) {
296 if (rsptr[i] != cptr[i]) {
297 fprint_raw_data(stdout, "c=", cptr, len);
298 fprint_raw_data(stdout, "rust=", rsptr, bstr_len_rs(rsbstr));
299 printf("Assertion failure: Bstr %s index %zu are different %02x vs %02x\n", field, i, rsptr[i], cptr[i]);
300 return 1;
301 }
302 }
303 return 0;
304}
305
306static int txDiff(void* rstx, htp_tx_t * ctx) {
307 if (bstrDiff(htp_tx_request_method(rstx), ctx->request_method, "methods")) {

Callers 1

txDiffFunction · 0.85

Calls 1

fprint_raw_dataFunction · 0.85

Tested by

no test coverage detected