OSS開発をしている中で、RPMDBの実装を理解する必要があり調べたことを記事に残そうと思います。 世界にこの記事を読んで嬉しい方は、万に一人もいないと思います。 今回の記事はRPMDBを解析する背景と、初めてC言語で書かれた実装を真面目に解析した話をしようかなと思います。 背景 個人的に Trivy というコンテナ脆弱性ツールの開発に少しだけ参加しており、その中で以下のようなIssueが立ちました。 github.com Issueを要約すると、「Red Hatの8系で脆弱性が誤検知している」というものです。 原因としては、Red Hat 8/Fedora 28から導入されたModularityという機能によって一部のパッケージのバージョン体系が変更されたことによって脆弱性検知が誤作動を起こしました。 興味がある方のために少し詳しく記載しますが、興味のない方は飛ばして 「本題」を読んでく
![RPMDBを解析した話 - masahiro331の日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/167de7912376527f7484339d3e68a4060fe870e9/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmasahiro331%2F20201220%2F20201220041935.png)