Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755572Ab2HTJFK (ORCPT ); Mon, 20 Aug 2012 05:05:10 -0400 Received: from cantor2.suse.de ([195.135.220.15]:52266 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753828Ab2HTJFA (ORCPT ); Mon, 20 Aug 2012 05:05:00 -0400 Date: Mon, 20 Aug 2012 11:04:59 +0200 Message-ID: From: Takashi Iwai To: Julia Lawall Cc: Jaroslav Kysela , Mark Brown , alsa-devel@alsa-project.org, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [alsa-devel] [PATCH 0/10] fix error return code In-Reply-To: <1345359780-18647-1-git-send-email-Julia.Lawall@lip6.fr> References: <1345359780-18647-1-git-send-email-Julia.Lawall@lip6.fr> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.1 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2163 Lines: 124 At Sun, 19 Aug 2012 09:02:51 +0200, Julia Lawall wrote: > > These patches fix cases where the return code appears to be unintentially > nonnegative. The patch 10/10 seems missing. Or are all 9 patches? The patch number suddenly changes to X/9 from 4. In anyway, the patches 3, 5, 6, 7, 8 and 9 are applied. I leave patches 1, 2 and 4 to Mark. thanks, Takashi > > The complete semantic match that finds the problem is as follows: > (http://coccinelle.lip6.fr/) > > // > @ok exists@ > identifier f,ret,i; > expression e; > constant c; > @@ > > f(...) { > <+... > ( > return -c@i; > | > ret = -c@i; > ... when != ret = e > return ret; > | > if (ret < 0) { ... return ret; } > ) > ...+> } > > @r exists@ > identifier ret,l,ok.f; > expression e1,e2,e3; > statement S; > position p1,p2,p3; > @@ > > f(...) { > ... when any > ( > if@p1 (\(ret < 0\|ret != 0\)) > { ... return ret; } > | > ret@p1 = 0 > ) > ... when != ret = e1 > when != &ret > ( > if (<+... ret = e3 ...+>) S > | > if (<+... &ret ...+>) S > | > if@p2(...) > { > ... when != ret = e2 > when forall > return@p3 ret; > } > ) > ... when any > } > > @bad exists@ > position r.p1,r.p2; > statement S1,S2; > identifier r.ret; > expression e1; > @@ > > ( > if@p1 (\(ret < 0\|ret != 0\)) S1 > | > ret@p1 = 0 > ) > ... when any > ret = e1 > ... when any > if@p2(...) S2 > > @bad2@ > position r.p1,r.p2; > identifier r.ret; > expression e1; > statement S2; > @@ > > ret@p1 = 0 > ... when != if (...) { ... ret = e1 ... return ret; } > when any > if@p2(...) S2 > > > @script:python depends on !bad && !bad2@ > p1 << r.p1; > p2 << r.p2; > p3 << r.p3; > @@ > > cocci.print_main("",p1) > cocci.print_secs("",p2) > cocci.print_secs("",p3) > // > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/