Your message dated Fri, 19 Dec 2014 17:40:50 -0500
with message-id <[email protected]>
and subject line Re: [Pkg-gnupg-maint] Bug#773468: Fwd: missing check
has caused the Debian Bug report #773468,
regarding Fwd: missing check
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
773468: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773468
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: gnupg2
Version: 2.1.1
Severity: normal
in signal.c on line 105, 'raise(sig);' is run, but later on, on line 127, sig
is checked to be within 0-99999. either it should be checked on 105, or the
check at 127 for < 0 should be removed.
Thanks,
--
-- Joshua Rogers <https://internot.info/>
--- End Message ---
--- Begin Message ---
Control: notfound 773468 2.1.1
On Thu 2014-12-18 13:31:41 -0500, Joshua Rogers wrote:
> Package: gnupg2
> Version: 2.1.1
>
> in signal.c on line 105, 'raise(sig);' is run, but later on, on line
> 127, sig is checked to be within 0-99999. either it should be checked
> on 105, or the check at 127 for < 0 should be removed.
What makes you say that the check for < 0 has anything to do with the
(conditional) raise() on line 105?
The test for the range of 0-99999 is to protect the attempt to print the
signal number to stderr which follows.
The code you're referring to is:
99 static RETSIGTYPE
100 got_fatal_signal (int sig)
101 {
102 const char *s;
103
104 if (caught_fatal_sig)
105 raise (sig);
106 caught_fatal_sig = 1;
107
108 if (cleanup_fnc)
109 cleanup_fnc ();
110 /* Better don't translate these messages. */
111 (void)write (2, "\n", 1 );
112 s = log_get_prefix (NULL);
113 if (s)
114 (void)write(2, s, strlen (s));
115 (void)write (2, ": signal ", 9 );
116 s = get_signal_name(sig);
117 if (s)
118 (void) write (2, s, strlen(s) );
119 else
120 {
121 /* We are in a signal handler so we can't use any kind of printf
122 even not sprintf. So we use a straightforward algorithm. We
123 got a report that on one particular system, raising a signal
124 while in this handler, the parameter SIG get sclobbered and
125 things are messed up because we modify its value. Although
126 this is a bug in that system, we will protect against it. */
127 if (sig < 0 || sig >= 100000)
128 (void)write (2, "?", 1);
129 else
130 {
131 int i, value, any=0;
132
133 for (value=sig,i=10000; i; i /= 10)
I'm closing this report because it does not seem to be a bug.
If i've missed something, feel free to reopen it with a clearer
explanation.
Regards,
--dkg
signature.asc
Description: PGP signature
--- End Message ---