cstptr.cocci 827 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /// PTR_ERR should be applied before its argument is reassigned, typically
  2. /// to NULL
  3. ///
  4. // Confidence: High
  5. // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
  6. // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
  7. // URL: http://coccinelle.lip6.fr/
  8. // Comments:
  9. // Options: --no-includes --include-headers
  10. virtual org
  11. virtual report
  12. virtual context
  13. @r exists@
  14. expression e,e1;
  15. constant c;
  16. position p1,p2;
  17. @@
  18. *e@p1 = c
  19. ... when != e = e1
  20. when != &e
  21. when != true IS_ERR(e)
  22. *PTR_ERR@p2(e)
  23. @script:python depends on org@
  24. p1 << r.p1;
  25. p2 << r.p2;
  26. @@
  27. cocci.print_main("PTR_ERR",p2)
  28. cocci.print_secs("assignment",p1)
  29. @script:python depends on report@
  30. p1 << r.p1;
  31. p2 << r.p2;
  32. @@
  33. msg = "ERROR: PTR_ERR applied after initialization to constant on line %s" % (p1[0].line)
  34. coccilib.report.print_report(p2[0],msg)