Author: Julia Lawall <julia@diku.dk> After calling capi_ctr_get, error handling code should call capi_ctr_put. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @r@ expression x,E; statement S; position p1,p2,p3; @@ ( if ((x = capi_ctr_get@p1(…)) == NULL || …) S | x = capi_ctr_get@p1(…) … when != x if (x == NULL …