From 523397fb83edecc692e787cfa7fbb47477f111db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20R=C3=BChsen?= Date: Wed, 4 Jul 2018 09:37:14 +0200 Subject: [PATCH] psl tool: Fix possible crashes with printf %s, NULL Reported-by: Mike Schiffman --- tools/psl.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tools/psl.c b/tools/psl.c index da5828e..b418052 100644 --- a/tools/psl.c +++ b/tools/psl.c @@ -198,10 +198,14 @@ int main(int argc, const char *const *argv) else putchar('\n'); } - else if (mode == 2) - printf("%s\n", psl_unregistrable_domain(psl, lower)); - else if (mode == 3) - printf("%s\n", psl_registrable_domain(psl, lower)); + else if (mode == 2) { + const char *dom = psl_unregistrable_domain(psl, lower); + printf("%s\n", dom ? dom : "(null)"); + } + else if (mode == 3) { + const char *dom = psl_registrable_domain(psl, lower); + printf("%s\n", dom ? dom : "(null)"); + } else if (mode == 4) { char *cookie_domain_lower; @@ -234,16 +238,18 @@ int main(int argc, const char *const *argv) } else if (mode == 2) { for (; arg < argv + argc; arg++) { + const char *dom = psl_unregistrable_domain(psl, *arg); if (!batch_mode) printf("%s: ", *arg); - printf("%s\n", psl_unregistrable_domain(psl, *arg)); + printf("%s\n", dom ? dom : "(null)"); } } else if (mode == 3) { for (; arg < argv + argc; arg++) { + const char *dom = psl_registrable_domain(psl, *arg); if (!batch_mode) printf("%s: ", *arg); - printf("%s\n", psl_registrable_domain(psl, *arg)); + printf("%s\n", dom ? dom : "(null)"); } } else if (mode == 4) {