[HB] Debug output for SANITIZE_MEM()
This commit is contained in:
parent
41895506cb
commit
ae728e51e9
@ -179,9 +179,20 @@ _hb_sanitize_check (SANITIZE_ARG_DEF,
|
|||||||
const char *base,
|
const char *base,
|
||||||
unsigned int len)
|
unsigned int len)
|
||||||
{
|
{
|
||||||
return context->start <= base &&
|
bool ret = context->start <= base &&
|
||||||
base <= context->end &&
|
base <= context->end &&
|
||||||
(unsigned int) (context->end - base) >= len;
|
(unsigned int) (context->end - base) >= len;
|
||||||
|
|
||||||
|
#if HB_DEBUG
|
||||||
|
if (sanitize_depth < HB_DEBUG) \
|
||||||
|
fprintf (stderr, "SANITIZE(%p) %-*d-> check [%p..%p] (%d bytes) in [%p..%p] -> %s\n", \
|
||||||
|
base,
|
||||||
|
sanitize_depth, sanitize_depth,
|
||||||
|
base, base+len, len,
|
||||||
|
context->start, context->end,
|
||||||
|
ret ? "pass" : "FAIL");
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HB_GNUC_UNUSED inline bool
|
static HB_GNUC_UNUSED inline bool
|
||||||
@ -193,12 +204,13 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF,
|
|||||||
context->edit_count++;
|
context->edit_count++;
|
||||||
|
|
||||||
#if HB_DEBUG
|
#if HB_DEBUG
|
||||||
fprintf (stderr, "sanitize %p edit %u requested for [%p..%p] (%d bytes) in [%p..%p] -> %s\n",
|
fprintf (stderr, "SANITIZE(%p) %-*d-> edit(%u) [%p..%p] (%d bytes) in [%p..%p] -> %s\n", \
|
||||||
context->blob,
|
base,
|
||||||
|
sanitize_depth, sanitize_depth,
|
||||||
context->edit_count,
|
context->edit_count,
|
||||||
base, base+len, len,
|
base, base+len, len,
|
||||||
context->start, context->end,
|
context->start, context->end,
|
||||||
perm ? "granted" : "rejected");
|
perm ? "granted" : "REJECTED");
|
||||||
#endif
|
#endif
|
||||||
return perm;
|
return perm;
|
||||||
}
|
}
|
||||||
@ -257,7 +269,7 @@ struct Sanitizer
|
|||||||
sane = t->sanitize (SANITIZE_ARG_INIT);
|
sane = t->sanitize (SANITIZE_ARG_INIT);
|
||||||
if (context.edit_count) {
|
if (context.edit_count) {
|
||||||
#if HB_DEBUG
|
#if HB_DEBUG
|
||||||
fprintf (stderr, "Sanitizer %p requested %d edits in second round; failing %s\n",
|
fprintf (stderr, "Sanitizer %p requested %d edits in second round; FAILLING %s\n",
|
||||||
blob, context.edit_count, __PRETTY_FUNCTION__);
|
blob, context.edit_count, __PRETTY_FUNCTION__);
|
||||||
#endif
|
#endif
|
||||||
sane = false;
|
sane = false;
|
||||||
@ -277,7 +289,7 @@ struct Sanitizer
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if HB_DEBUG
|
#if HB_DEBUG
|
||||||
fprintf (stderr, "Sanitizer %p %s %s\n", blob, sane ? "passed" : "failed", __PRETTY_FUNCTION__);
|
fprintf (stderr, "Sanitizer %p %s %s\n", blob, sane ? "passed" : "FAILED", __PRETTY_FUNCTION__);
|
||||||
#endif
|
#endif
|
||||||
if (sane)
|
if (sane)
|
||||||
return blob;
|
return blob;
|
||||||
|
Loading…
Reference in New Issue
Block a user