diff options
author | Edward Hill <ecgh@chromium.org> | 2020-05-19 14:21:17 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-05-20 04:23:08 +0000 |
commit | 8d7bd376c17fbbaaa1fc528ad607546295b04838 (patch) | |
tree | 354ab5419df0ce305baf86477f1277a1718f9fe2 /common/printf.c | |
parent | 3f80a81247507fe18f18387bbba8bd3b3da66000 (diff) | |
download | chrome-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.c | 7 |
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)) { |