GNU bug report logs - #18680
[PATCH] Check if argv[0] is NULL in scm_boot_guile to avoid segfault

Previous Next

Package: guile;

Reported by: Nala Ginrut <nalaginrut <at> gmail.com>

Date: Fri, 10 Oct 2014 16:30:02 UTC

Severity: normal

Tags: patch

Done: Mark H Weaver <mhw <at> netris.org>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nala Ginrut <nalaginrut <at> gmail.com>
To: guile-devel <guile-devel <at> gnu.org>, Eli Zaretskii <eliz <at> gnu.org>,
 Andy Wingo <wingo <at> pobox.com>, 
 bug-guile <at> gnu.org, Mark H Weaver <mhw <at> netris.org>
Subject: [PATCH] Check if argv[0] is NULL in scm_boot_guile to avoid segfault
Date: Sat, 11 Oct 2014 00:15:25 +0800
[Message part 1 (text/plain, inline)]
This patch is for master branch, but the bug also appears in the
current stable-2.0 I think.

With the recent patch from Eli Zaretskii, there'd be one more step for argv[0]:
scm_i_mirror_backslashes (argv[0]);

But this cause my program segfault, since I have such line:
scm_boot_guile(0, {NULL}, &guilemain, NULL);

According to C11, it's allowed[1].
argv[argc] should be NULL.
If the value of argc is greater than zero, the string pointed to by argv[0]
represents the program name. But if argc is zero, argv[0] will be NULL, so
we have to check it first to avoid segfault.

Attached patch fixed this.

[1] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
[0001-Check-argv-0-if-it-s-NULL-in-scm_boot_guile.patch (text/x-patch, attachment)]

This bug report was last modified 10 years and 220 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.