![パッチを適用した後にパッチ内に挿入されたコードを識別できるすべてのツール[閉じる]](https://linux33.com/image/141824/%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%9F%E5%BE%8C%E3%81%AB%E3%83%91%E3%83%83%E3%83%81%E5%86%85%E3%81%AB%E6%8C%BF%E5%85%A5%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E8%AD%98%E5%88%A5%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%84%E3%83%BC%E3%83%AB%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
ソースファイルに適用されたパッチの修正を識別するためのツール(コマンドライン)または方法はありますか?たとえば -
- パッチに新しいコードを挿入する
- パッチで変数または関数名を変更する
パッチユーティリティは、パッチが適用されたかどうかを識別する機能を提供することを知っていますが、さらに適用されたパッチが修正されたことを確認したいと思います。
以下の元のパッチを検討してください -
/* stack overflow, return an error */
- if (*pStackPtr >= CDL_STACK_SIZE)
+ if (*pStackPtr >= (CDL_STACK_SIZE - 1)) {
+ ALOGE("b/34031018, stackPtr(%d)", *pStackPtr);
+ android_errorWriteLog(0x534e4554, "34031018");
return EAS_ERROR_FILE_FORMAT;
+ }
誰かがこのパッチを次のように修正しました。
/* stack overflow, return an error */
- if (*pStackPtr >= CDL_STACK_SIZE)
int stksize = *pStackPtr; // or something like this
+ if (stksize >= (CDL_STACK_SIZE - 1)) {
+ ALOGE("b/34031018, stackPtr(%d)", stksize);
+ android_errorWriteLog(0x534e4554, "34031018");
return EAS_ERROR_FILE_FORMAT;
+ }
私はパッチされたソースコード(上記のように変更することができます)、ソースパッチ、そして私のローカルチームのオープンソースリポジトリから受け取った実際のパッチソースファイルを持っています。これで、自動化されたツール(または一連のコマンド)を使用して、元のパッチが適用されていますが、一部が変更されたかどうかを検出したいと思います。さまざまなオープンソースのパッチが多すぎて時間がかかるため、手動で分析したくありません。他のすべてのオプションを使用した後、元のパッチを修正するためにフォーラムでこの質問をしたとします。人々がそうしないように説得するのです。