From patchwork Wed May 22 11:40:47 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Timo Teras X-Patchwork-Id: 245594 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 215452C00A2 for ; Wed, 22 May 2013 21:39:33 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755699Ab3EVLj3 (ORCPT ); Wed, 22 May 2013 07:39:29 -0400 Received: from mail-ee0-f45.google.com ([74.125.83.45]:49590 "EHLO mail-ee0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754799Ab3EVLj2 (ORCPT ); Wed, 22 May 2013 07:39:28 -0400 Received: by mail-ee0-f45.google.com with SMTP id l10so1061305eei.4 for ; Wed, 22 May 2013 04:39:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:x-mailer:mime-version :content-type:content-transfer-encoding; bh=ErrrV4vFKsf+Lr1qVR3Tdj3jqu1eCRxDU3s1A5F4dT8=; b=0Ws7lhqOB7yvJREr/3S6lXBFwJBK8PP46BfcOH+b96ZisGojpaSFRksyxynWrC3bsh 57xMk8+iMQ0L8SgtxSdt8eDkjiWGO8NjGiA0KK/lMfGLTV0tyHLf6dzrCh5GKAKtncNu 3+wXaC99mwH653mwfWfv6/BTSzHP8RTWexydhd+T7RKm3VIbupOkfhgHSp1I9bp2Vq14 XzEacsd8AOYum+McpOQPHOq/Albf7iSgZcprGKniSh2k273KEYGdFK1wzsuval8NAb9h tLg47zgroikJdaiofoKMVb0OMWLL158o3EtkSXhFtBBzDyrC+ugMJ+pTSTodqhrSLggX vTaQ== X-Received: by 10.14.211.69 with SMTP id v45mr18251306eeo.45.1369222766743; Wed, 22 May 2013 04:39:26 -0700 (PDT) Received: from vostro.util.wtbts.net ([83.145.235.199]) by mx.google.com with ESMTPSA id c42sm9591804eeb.10.2013.05.22.04.39.24 for (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 22 May 2013 04:39:25 -0700 (PDT) From: =?UTF-8?q?Timo=20Ter=C3=A4s?= To: netdev@vger.kernel.org Cc: =?UTF-8?q?Timo=20Ter=C3=A4s?= , Li RongQing , Steffen Klassert Subject: [PATCH ipsec] xfrm: properly handle invalid states as an error Date: Wed, 22 May 2013 14:40:47 +0300 Message-Id: <1369222847-8542-1-git-send-email-timo.teras@iki.fi> X-Mailer: git-send-email 1.8.2.3 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The error exit path needs err explicitly set. Otherwise it returns success and the only caller, xfrm_output_resume(), would oops in skb_dst(skb)->ops derefence as skb_dst(skb) is NULL. Bug introduced in commit bb65a9cb (xfrm: removes a superfluous check and add a statistic). Signed-off-by: Timo Teräs Cc: Li RongQing Cc: Steffen Klassert --- Should go also to 3.9-stable. net/xfrm/xfrm_output.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index bcfda89..0cf003d 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c @@ -64,6 +64,7 @@ static int xfrm_output_one(struct sk_buff *skb, int err) if (unlikely(x->km.state != XFRM_STATE_VALID)) { XFRM_INC_STATS(net, LINUX_MIB_XFRMOUTSTATEINVALID); + err = -EINVAL; goto error; }