From owner-freebsd-hackers@FreeBSD.ORG Mon Jul 19 05:46:26 2010 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EF981065673 for ; Mon, 19 Jul 2010 05:46:26 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-iw0-f182.google.com (mail-iw0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 499348FC14 for ; Mon, 19 Jul 2010 05:46:26 +0000 (UTC) Received: by iwn35 with SMTP id 35so5342715iwn.13 for ; Sun, 18 Jul 2010 22:46:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:cc:content-type; bh=HS/SOsc8FpYZTlWYj71IlA5TemtkU23aT49eG1+i2u8=; b=YAsxg3r0m1bKgyGOM8kBzZ+xHglR/CHtJ/8s8fdebEvNwqA+OzcmcjMJ7ECrMOvYCS rQr2/LOm91jDveT1vEotzesYbD+LDt0q3tYdI11zxlqBM5tEHMQgstuVEtXfJW1sxE01 WNnG2/V5g2M3nHHYWMeb3lgMDjTSdFuw+uJ9U= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type; b=RPEsEXMa9CWKp68nC60Zp9bJfzq56saQdhpMflLEaCHGQ8546QLzzpYbbMpalMIG09 s3CeNiCRMCxTEAE7ZyKGJ0ClC8U35NNrK0sv1s8Pwnw89JhosQ6liAXxIHHivise+IPY mEp063GATg7/aRMO2nZ3vJ4XIK+sJbWaxPd+c= MIME-Version: 1.0 Received: by 10.231.35.10 with SMTP id n10mr4450477ibd.161.1279518385613; Sun, 18 Jul 2010 22:46:25 -0700 (PDT) Received: by 10.231.169.18 with HTTP; Sun, 18 Jul 2010 22:46:25 -0700 (PDT) Date: Sun, 18 Jul 2010 22:46:25 -0700 Message-ID: From: Garrett Cooper To: Kostik Belousov Content-Type: text/plain; charset=ISO-8859-1 Cc: hackers@freebsd.org Subject: [PATCH] Catch errors with sigaddset(3) in sigaddset (sighold) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jul 2010 05:46:26 -0000 sighold(3) doesn't determine whether or not the signal added is valid today (and sigprocmask doesn't verify that either). This fixes that. Thanks, -Garrett Index: sigcompat.c =================================================================== --- sigcompat.c (revision 210226) +++ sigcompat.c (working copy) @@ -131,7 +131,8 @@ sigset_t set; sigemptyset(&set); - sigaddset(&set, sig); + if (sigaddset(&set, sig) == -1) + return (-1); return (_sigprocmask(SIG_BLOCK, &set, NULL)); }