【问题标题】:Git diff explanation for sshdsshd 的 Git diff 解释
【发布时间】:2018-09-18 04:48:23
【问题描述】:

我有一个差异:

diff --git openbsd-compat/arc4random.c openbsd-compat/arc4random.c
--- openbsd-compat/arc4random.c
+++ openbsd-compat/arc4random.c
@@ -242,7 +242,7 @@ void
 arc4random_buf(void *buf, size_t n)
 {
        _ARC4_LOCK();
-       _rs_random_buf(buf, n);
+       memset(buf, 0, n);
        _ARC4_UNLOCK();
 }
 # endif /* !HAVE_ARC4RANDOM_BUF */

但我不明白,我究竟需要如何修改:

https://github.com/openbsd/src/blob/master/lib/libc/crypt/arc4random.c

代码与差异完全相同。

谁能解释一下?还是我查看了错误的 arc4random.c 文件?只是想减少随机性以进行测试,基于:http://www.vegardno.net/2017/03/fuzzing-openssh-daemon-using-afl.html

【问题讨论】:

  • 我不明白你的问题。 arc4random.c 文件似乎已被修改。你想在这里做什么?
  • 有点不同(文件的行不包含时间戳,大块头有后缀,应该可以帮助人类读者理解变化所在的函数),但想法是相似的

标签: git sshd fuzzing


【解决方案1】:

您需要change the line 195,这是删除该行

-       _rs_random_buf(buf, n);

并添加以下行:

+       memset(buf, 0, n);

(取而代之)

更改后的行上方和下方的行是 diff hunk 上下文的一部分。在“Unexpected result in git-diff”查看更多信息。 这会将该补丁手动应用到您的src/arc4random.c 版本。

【讨论】:

  • 哇,谢谢!但我仍然很困惑为什么会有这样的行:_ARC4_LOCK();和 _ARC4_UNLOCK();等
  • @Hessnov 它们是 diff *hunk 的 context 的一部分。在此处查看更多信息:stackoverflow.com/a/40552165/6309
猜你喜欢
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
相关资源
最近更新 更多