SEMGREP C#: Как сделать отрицательный фильтр для цепных заявлений?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 SEMGREP C#: Как сделать отрицательный фильтр для цепных заявлений?

Сообщение Anonymous »

https://semgrep.dev/playground/s/6x3lb показывает, как можно использовать режимы, чтобы найти Todictionary без группы, т.е.

Код: Выделить всё

public static void foo()
{
var x = new List{1,2,1};

// ruleid: todictionary-crash
Dictionary bad = x.ToDictionary(i=>i,i=>i.ToString());

Dictionary good = x.GroupBy(i=>i).ToDictionary(i=>i.Key,i=>i.First().ToString());
}
< /code>
rules:
- id: todictionary-crash
languages:
- csharp
severity: ERROR
message: Semgrep found a match
patterns:
- pattern-regex: ToDictionary
- pattern-not-regex: GroupBy\(.*\)\.ToDictionary
< /code>
Но как это сделать с «реальными» образцами Semgrep? Если я < /p>
    patterns:
- pattern: $X.ToDictionary(...)
- pattern-not: $X.GroupBy(...).ToDictionary(...)
это также улавливает хорошие экземпляры (аналогично шаблону-inside ).


Подробнее здесь: https://stackoverflow.com/questions/797 ... statements
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»