首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Semgrep找不到带有“模式”部分的两行代码

Semgrep找不到带有“模式”部分的两行代码
EN

Stack Overflow用户
提问于 2022-03-13 18:44:15
回答 1查看 189关注 0票数 3

我有个Semgrep规则:

代码语言:javascript
复制
rules:
  - id: create-chat-client
    patterns:
      - pattern: var $X = GrpcChannel.ForAddress(...); 
      - pattern: var $Y = new ChatService.ChatServiceClient($X);
    languages: 
      - csharp
    message: <pass>
    severity: INFO

我正试着匹配这个代码:

代码语言:javascript
复制
using Grpc.Net.Client;
using GrpcChat.ProtoBuf;

var channel = GrpcChannel.ForAddress("https://localhost:8888");
var client = new ChatService.ChatServiceClient(channel);

这些匹配分别,但‘模式’应该是一个“和”匹配,它失败。我肯定漏掉了一些明显的东西。有人看到什么了吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-26 02:37:45

使用pattern-inside工作:

代码语言:javascript
复制
rules:
  - id: chat
    patterns:
      - pattern-inside: |
          var $X = GrpcChannel.ForAddress(...); 
          ...
      - pattern: var $Y = new ChatService.ChatServiceClient($X);
    languages: 
      - csharp
    message: <pass>
    severity: INFO

对于这个测试用例:

代码语言:javascript
复制
using Grpc.Net.Client;
using GrpcChat.ProtoBuf;

var channel = GrpcChannel.ForAddress("https://localhost:8888");
// ruleid: chat
var client = new ChatService.ChatServiceClient(channel);

当我运行测试时:

代码语言:javascript
复制
% semgrep --test rules/
✓ All tests passed!
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71459777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档