Coccinelle archive on lore.kernel.org
 help / color / Atom feed
* [Cocci] Determination of failure predicates for selected function calls with SmPL?
@ 2020-03-25 17:00 Markus Elfring
  2020-03-25 17:32 ` Julia Lawall
  0 siblings, 1 reply; 4+ messages in thread
From: Markus Elfring @ 2020-03-25 17:00 UTC (permalink / raw)
  To: Coccinelle

Hello,

I have noticed the patch “tty: serial: fsl_lpuart: fix return value checking”.
https://lore.kernel.org/linux-serial/20200325090658.25967-2-michael@walle.cc/
https://lore.kernel.org/patchwork/patch/1215542/
https://lkml.org/lkml/2020/3/25/202

I am curious if such a software transformation can be extended for similar
source code searches also by the means of the semantic patch language.
The proper knowledge of failure predicates for function calls is a key aspect
for this use case.
Would you like to clarify any corresponding development possibilities?

Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Cocci] Determination of failure predicates for selected function calls with SmPL?
  2020-03-25 17:00 [Cocci] Determination of failure predicates for selected function calls with SmPL? Markus Elfring
@ 2020-03-25 17:32 ` Julia Lawall
  2020-03-25 18:00   ` Markus Elfring
  2020-03-26  6:45   ` Markus Elfring
  0 siblings, 2 replies; 4+ messages in thread
From: Julia Lawall @ 2020-03-25 17:32 UTC (permalink / raw)
  To: Markus Elfring; +Cc: Coccinelle

[-- Attachment #1: Type: text/plain, Size: 983 bytes --]



On Wed, 25 Mar 2020, Markus Elfring wrote:

> Hello,
>
> I have noticed the patch “tty: serial: fsl_lpuart: fix return value checking”.
> https://lore.kernel.org/linux-serial/20200325090658.25967-2-michael@walle.cc/
> https://lore.kernel.org/patchwork/patch/1215542/
> https://lkml.org/lkml/2020/3/25/202
>
> I am curious if such a software transformation can be extended for similar
> source code searches also by the means of the semantic patch language.
> The proper knowledge of failure predicates for function calls is a key aspect
> for this use case.
> Would you like to clarify any corresponding development possibilities?

I'm not sure what there is to clarify.  One can surely write rules that
find this kind of problem, with a varying rate of false positives.

A simple approach would be to check all occurrences of if (!ret) for an
integer-typed variable, because typically that is the success case.  But
sometimes people do put the success case under an if.

julia

[-- Attachment #2: Type: text/plain, Size: 136 bytes --]

_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Cocci] Determination of failure predicates for selected function calls with SmPL?
  2020-03-25 17:32 ` Julia Lawall
@ 2020-03-25 18:00   ` Markus Elfring
  2020-03-26  6:45   ` Markus Elfring
  1 sibling, 0 replies; 4+ messages in thread
From: Markus Elfring @ 2020-03-25 18:00 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Coccinelle

>> I have noticed the patch “tty: serial: fsl_lpuart: fix return value checking”.
>> https://lore.kernel.org/linux-serial/20200325090658.25967-2-michael@walle.cc/
> I'm not sure what there is to clarify.

Such an use case can point some software development challenges out.


> One can surely write rules that find this kind of problem,

I know this in principle.


> with a varying rate of false positives.

I am trying again to reduce this special case considerably.


> A simple approach would be to check all occurrences of if (!ret) for an
> integer-typed variable, because typically that is the success case.

I would like to increase the probability for generation of corresponding fixes.

The success predicate can be also the opposite if you would like to take
a Linux macro like access_ok() or valid pointers (after memory allocations
for example) into account.


> But sometimes people do put the success case under an if.

I am curious how often such source code variations should be considered.

Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Cocci] Determination of failure predicates for selected function calls with SmPL?
  2020-03-25 17:32 ` Julia Lawall
  2020-03-25 18:00   ` Markus Elfring
@ 2020-03-26  6:45   ` Markus Elfring
  1 sibling, 0 replies; 4+ messages in thread
From: Markus Elfring @ 2020-03-26  6:45 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Coccinelle

>> I have noticed the patch “tty: serial: fsl_lpuart: fix return value checking”.
>> https://lore.kernel.org/linux-serial/20200325090658.25967-2-michael@walle.cc/
> I'm not sure what there is to clarify.  One can surely write rules that
> find this kind of problem, with a varying rate of false positives.

Will further changes become more interesting also according to other development
approaches you care for?

* Prequel
  http://prequel-pql.gforge.inria.fr/

* Machine learning for software corrections
  https://hal.inria.fr/hal-02373994
  https://doi.org/10.1109/TSE.2019.2952614

Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-25 17:00 [Cocci] Determination of failure predicates for selected function calls with SmPL? Markus Elfring
2020-03-25 17:32 ` Julia Lawall
2020-03-25 18:00   ` Markus Elfring
2020-03-26  6:45   ` Markus Elfring

Coccinelle archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/cocci/0 cocci/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 cocci cocci/ https://lore.kernel.org/cocci \
		cocci@systeme.lip6.fr
	public-inbox-index cocci

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/fr.lip6.systeme.cocci


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git