Как сделать патч для библиотеки C
В своем проекте класса я пытаюсь вручную исправить призрачную уязвимость в Ubuntu 12.04. Я полностью понимаю ошибки внутри /nss/digits_dots.c и исправил их. Моя проблема в том, что я не знаю, как сделать патч и скомпилировать его. Как я могу сделать патч? Как я могу просто отредактировать один файл в библиотеке и перестроить его? Мне удалось загрузить исходную библиотеку, но потом я застрял! Вот что я сделал
apt-get source libc6
У меня были некоторые ошибки. Затем я должен был установить другие пакеты, такие как
sudo apt-get install alien
sudo apt-get install gawk
Но после этого я начал несколько вещей и начал зацикливаться, но безуспешно. Может кто-нибудь, пожалуйста, скажите мне, как сделать простой патч для библиотеки Си.
Спасибо,
1 ответ
Предполагая, что у вас уже есть исходный пакет для ghost
, вы просто хотите проверить локально, и это всего лишь один измененный файл, вот что вы можете сделать.
1. Создайте различия ваших изменений:
diff -u /path/to/original_ghost_file.c ghost_file_changes.c > ghost.patch
2. Примените патч.
Перейдите в исходный каталог и запустите:
patch -p1 ghost.patch
Не видя ваш патч, я не могу посоветовать вам, что -p
возможность использовать, но я предполагаю, что вы использовали абсолютные пути.
3. Перестройте и установите
Все еще в исходном каталоге, запустите ./configure
, make
, а также make check
, Если вы хотите заменить оригинальную версию ghost
тогда беги make install
наконец.