<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 28, 2022 at 11:56 PM Paul Eggert via tz <<a href="mailto:tz@iana.org">tz@iana.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Don’t dump core if argv[0] is NULL, which is allowed on<br>
GNU/Linux if the invoker is sufficiently perverse.<br></blockquote><div><br></div><div>note that linux fixed this earlier this year: <a href="https://github.com/torvalds/linux/commit/dcd46d897adb70d63e025f175a00a89797d31a43">https://github.com/torvalds/linux/commit/dcd46d897adb70d63e025f175a00a89797d31a43</a></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
* zdump.c (progname): Now char const *, so that it can be given<br>
the address of a string constant.<br>
(tzalloc): Use optarg, not progname, since progname’s type is no<br>
longer correct.<br>
* zdump.c, zic.c (main): Initialize progname to non-null.<br>
---<br>
zdump.c | 6 +++---<br>
zic.c | 2 +-<br>
2 files changed, 4 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/zdump.c b/zdump.c<br>
index 512ba8cc..f0461ade 100644<br>
--- a/zdump.c<br>
+++ b/zdump.c<br>
@@ -84,7 +84,7 @@ static time_t const absolute_max_time =<br>
? (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift))<br>
: -1);<br>
static int longest;<br>
-static char * progname;<br>
+static char const *progname;<br>
static bool warned;<br>
static bool errout;<br>
<br>
@@ -234,7 +234,7 @@ tzalloc(char const *val)<br>
exit(EXIT_FAILURE);<br>
}<br>
tzset();<br>
- return &progname; /* Any valid non-null char ** will do. */<br>
+ return &optarg; /* Any valid non-null char ** will do. */<br>
# else<br>
enum { TZeqlen = 3 };<br>
static char const TZeq[TZeqlen] = "TZ=";<br>
@@ -463,7 +463,7 @@ main(int argc, char *argv[])<br>
# endif /* defined TEXTDOMAINDIR */<br>
textdomain(TZ_DOMAIN);<br>
#endif /* HAVE_GETTEXT */<br>
- progname = argv[0];<br>
+ progname = argv[0] ? argv[0] : "zdump";<br>
for (i = 1; i < argc; ++i)<br>
if (strcmp(argv[i], "--version") == 0) {<br>
printf("zdump %s%s\n", PKGVERSION, TZVERSION);<br>
diff --git a/zic.c b/zic.c<br>
index 501718f4..f3b32ecc 100644<br>
--- a/zic.c<br>
+++ b/zic.c<br>
@@ -943,7 +943,7 @@ main(int argc, char **argv)<br>
textdomain(TZ_DOMAIN);<br>
#endif /* HAVE_GETTEXT */<br>
main_argv = argv;<br>
- progname = argv[0];<br>
+ progname = argv[0] ? argv[0] : "zic";<br>
if (TYPE_BIT(zic_t) < 64) {<br>
fprintf(stderr, "%s: %s\n", progname,<br>
_("wild compilation-time specification of zic_t"));<br>
-- <br>
2.37.2<br>
<br>
</blockquote></div></div>