对于我的课程项目,我正在尝试手动修复 Ubuntu 12.04 上的幽灵漏洞。我完全理解 /nss/digits_dots.c 中的错误,并修复了它们。我的问题是我不知道如何制作补丁并编译它。我该如何制作补丁?我如何只编辑库中的一个文件并重新构建它?我能够下载源库,但后来我卡住了!这是我所做的
apt-get source libc6
我遇到了一些错误。然后我必须安装其他软件包,例如
sudo apt-get install alien
sudo apt-get install gawk
但之后我开始做几件事,开始陷入循环,但没有成功。有人能告诉我如何为 C 库做一个简单的补丁吗?
谢谢你,
答案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
。