提交 ae728e51 编写于 作者: B Behdad Esfahbod

[HB] Debug output for SANITIZE_MEM()

上级 41895506
...@@ -179,9 +179,20 @@ _hb_sanitize_check (SANITIZE_ARG_DEF, ...@@ -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, ...@@ -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 ...@@ -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 ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册