Hi all,

I'm trying to find calls to ep_tail_call() that are *not* followed by
'return DROP_MISSED_TAIL_CALL'. That works fine (rule1 below), but I then
want to whitelist one specific function, send_drop_notify().

I couldn't find a way to do that from the first rule, so I whitelisted
send_drop_notify() with a second rule (rule2 below). That seems rather
cumbersome and I'm wondering if there's maybe a simpler approach?

  @rule1@
  position p1;
  @@
 
  (
    ep_tail_call(...);
    ... when forall
    return DROP_MISSED_TAIL_CALL;
  |
    ep_tail_call@p1(...);
  )
 
  @rule2@
  position p2, rule1.p1;
  identifier fn != send_drop_notify;
  @@
 
  fn(...) {
  <+...
  ep_tail_call@p1@p2(...);
  ...+>
  }

When I tried using rule1 as the body of the function in rule2, it just
didn't match anything anymore.

Thanks,
Paul
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to