X-Scanned-BY: MIMEDefang 2.58 on 172.16.27.26 Received: from mx.isc.org (mx.isc.org [IPv6:2001:4f8:0:2::1c]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.isc.org", Issuer "ISC CA" (verified OK)) by nexus.isc.org (Postfix) with ESMTPS id 9219F959A5 for ; Sat, 27 Jun 2009 00:06:26 +0000 (UTC) (envelope-from dcantrell@redhat.com) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by mx.isc.org (Postfix) with ESMTP id B9B4511401C for ; Sat, 27 Jun 2009 00:06:22 +0000 (UTC) (envelope-from dcantrell@redhat.com) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n5R06OQN021126 for ; Fri, 26 Jun 2009 20:06:24 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n5R06ObM009040 for ; Fri, 26 Jun 2009 20:06:24 -0400 Received: from vpn-225-19.phx2.redhat.com (vpn-225-19.phx2.redhat.com [10.3.225.19]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n5R06Mk5013125 for ; Fri, 26 Jun 2009 20:06:23 -0400 MIME-Version: 1.0 User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) Subject: common/dispatch.c: add_timeout() when parameter NULL X-Spam-Status: No, score=-6.2 required=5.0 tests=AWL,BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.2.5 Return-Path: X-Original-To: dhcp-bugs@nexus.isc.org Date: Fri, 26 Jun 2009 14:03:57 -1000 (HST) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on mx.isc.org content-type: TEXT/PLAIN; charset="utf-8"; format="flowed" Message-ID: To: dhcp-bugs@isc.org X-X-Sender: dcantrel@mitre.honolulu.burdell.org From: David Cantrell X-RT-Original-Encoding: US-ASCII Content-Length: 1492 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 In Fedora 11 and rawhide on 32-bit x86 systems, some users are reporting a SGISEGV in dhclient when there is a DHCPDECLINE sent. The add_timeout() function is called in common/dispatch.c and the 'when' parameter is NULL. Core dumps reveal the offending line as: q -> when . tv_sec = when -> tv_sec; Which is around line 143 in common/dispatch.c in dhcp-4.1.0. x86_64 systems are not having this problem. As it is affecting users from using their systems, I've added the following patch to the Fedora package: diff -up dhcp-4.1.0/common/dispatch.c.dracut dhcp-4.1.0/common/dispatch.c - --- dhcp-4.1.0/common/dispatch.c.dracut 2008-01-23 16:43:04.000000000 -1000 +++ dhcp-4.1.0/common/dispatch.c 2009-06-25 16:21:03.000000000 -1000 @@ -104,6 +104,10 @@ void add_timeout (when, where, what, ref { struct timeout *t, *q; + if (when == NULL) { + return; + } + /* See if this timeout supersedes an existing timeout. */ t = (struct timeout *)0; for (q = timeouts; q; q = q -> next) { What I'd really like to determine is why the when parameter is NULL in these cases, but I wanted to get something out to users that isn't segfaulting. - -- David Cantrell Red Hat / Honolulu, HI -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkpFYe0ACgkQ5hsjjIy1Vkn4eACbBan1EXNoGGVogGARQesl64nR p+UAniJleIDwYB7kiUXzrimN+AwcG37o =NwTj -----END PGP SIGNATURE-----