Как сделать патч для библиотеки 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 наконец.

Другие вопросы по тегам