summaryrefslogtreecommitdiff
path: root/common/printf.c
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2020-05-19 14:21:17 -0600
committerCommit Bot <commit-bot@chromium.org>2020-05-20 04:23:08 +0000
commit8d7bd376c17fbbaaa1fc528ad607546295b04838 (patch)
tree354ab5419df0ce305baf86477f1277a1718f9fe2 /common/printf.c
parent3f80a81247507fe18f18387bbba8bd3b3da66000 (diff)
downloadchrome-ec-8d7bd376c17fbbaaa1fc528ad607546295b04838.tar.gz
printf: Avoid null pointer dereference
Avoid null pointer dereference for %ph and %pb. %pT and %pP can accept null. BUG=chromium:1076023 BRANCH=none TEST=make -j host-host_command_fuzz TEST_MSAN=1 Signed-off-by: Edward Hill <ecgh@chromium.org> Change-Id: I0248d03cff428b8dd1aded84417d8ea2f3efe3b9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2209367 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Evan Green <evgreen@chromium.org>
Diffstat (limited to 'common/printf.c')
-rw-r--r--common/printf.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/common/printf.c b/common/printf.c
index baac4addf7..4a28bac215 100644
--- a/common/printf.c
+++ b/common/printf.c
@@ -266,6 +266,13 @@ int vfnprintf(int (*addchar)(void *context, int c), void *context,
c = -1;
ptrspec = *format++;
ptrval = va_arg(args, void *);
+ /*
+ * Avoid null pointer dereference for %ph and
+ * %pb. %pT and %pP can accept null.
+ */
+ if (ptrval == NULL
+ && ptrspec != 'T' && ptrspec != 'P')
+ continue;
/* %pT - print a timestamp. */
if (ptrspec == 'T' &&
!IS_ENABLED(NO_UINT64_SUPPORT)) {