From 3396b206613073b1796dfb55131505dfbaec397e Mon Sep 17 00:00:00 2001 From: Christian Buttner Date: Sun, 30 Jun 2024 19:21:37 +0200 Subject: [PATCH] Fix formatter crash for null ZString, print "(null)" for null pointers. --- lib/std/io/formatter.c3 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/std/io/formatter.c3 b/lib/std/io/formatter.c3 index aaecfc05d..b4762b4e8 100644 --- a/lib/std/io/formatter.c3 +++ b/lib/std/io/formatter.c3 @@ -178,14 +178,18 @@ fn usz! Formatter.out_str(&self, any arg) @private case DISTINCT: if (arg.type == ZString.typeid) { - return self.out_substr(((ZString*)arg).str_view()); + return self.out_substr(*(ZString*)arg ? ((ZString*)arg).str_view() : "(null)"); } if (arg.type == DString.typeid) { - return self.out_substr(((DString*)arg).str_view()); + return self.out_substr(*(DString*)arg ? ((DString*)arg).str_view() : "(null)"); } return self.out_str(arg.as_inner()); case POINTER: + if (*(void**)arg == null) + { + return self.out_substr("(null)"); + } PrintFlags flags = self.flags; uint width = self.width; defer