如何为 C 库制作补丁

如何为 C 库制作补丁

对于我的课程项目,我正在尝试手动修复 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. 重建并安装

仍在源目录中,运行 ./configuremakemake check。如果要替换原始版本,最后ghost运行make install

相关内容