From patchwork Fri Jun 28 16:14:36 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changli Gao X-Patchwork-Id: 255460 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 503FC2C008E for ; Sat, 29 Jun 2013 02:15:53 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755282Ab3F1QPt (ORCPT ); Fri, 28 Jun 2013 12:15:49 -0400 Received: from mail-pa0-f43.google.com ([209.85.220.43]:36805 "EHLO mail-pa0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755427Ab3F1QPs (ORCPT ); Fri, 28 Jun 2013 12:15:48 -0400 Received: by mail-pa0-f43.google.com with SMTP id hz11so2597154pad.30 for ; Fri, 28 Jun 2013 09:15:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer; bh=BLAwJ/dzzjZ1FlJXd8i2WzNVs1DC7Pyo5F2/gUll/HA=; b=q4hvT8YwGTO6428ClXBL2+jXk2JiDjmrgYHdAt5qjeqVxU+KC5IHkKzKCQJNr8lTR9 RA3JZIy95x1wYLpah4NywcQS/5YtWPVlKHpSpMVTmg9aoij5sTCTP1c7g47isFstsZnA xl7gBx9ORXimivI1Cal0o+5SYAI4gVHkx9vxkC1/eRG6JtBxmO1rKv/+nwI23++3JiAp mei6lDCmpFkSIWkatr59CMu7kKzu+zTp/OEROetGWd7lV5rSngCEjt+BzQfTIDyNjqV0 +InabIzgtEp0DbdMdzExaX4SsVboDVxIH1PcFFE9evZbmCvGGDe9plv86P6zIQeaUSBo Qhdg== X-Received: by 10.66.246.66 with SMTP id xu2mr12309742pac.134.1372436147881; Fri, 28 Jun 2013 09:15:47 -0700 (PDT) Received: from localhost.localdomain ([221.239.34.230]) by mx.google.com with ESMTPSA id pq5sm8808470pbc.7.2013.06.28.09.15.44 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 28 Jun 2013 09:15:47 -0700 (PDT) From: Changli Gao To: "David S. Miller" Cc: Changli Gao , netdev@vger.kernel.org Subject: [PATCH] net: Check the argument for listen(2) Date: Sat, 29 Jun 2013 00:14:36 +0800 Message-Id: <1372436076-61436-1-git-send-email-xiaosuo@gmail.com> X-Mailer: git-send-email 1.7.9.5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org As we use u16 to save the value of the argument for listen(2), we'd better check if the value is larger than SINT_MAX other than cut it down silently on error. --- net/ipv4/af_inet.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index b4d0be2..35aaf00 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -198,6 +198,9 @@ int inet_listen(struct socket *sock, int backlog) unsigned char old_state; int err; + if (backlog >= (1 << 16)) + return EINVAL; + lock_sock(sk); err = -EINVAL;