【发布时间】:2019-03-15 16:00:41
【问题描述】:
今天正在使用一些 SASL 代码,并注意到下面的 sn-p 中的 ==。我不是 C 专家,但我使用该运算符的唯一方法是测试相等性。漏洞?
if ( !conn ) {
rc == LDAP_SUCCESS;
goto done;
}
【问题讨论】:
-
可能是一个错误。
-
这是一个错误。此代码没有理由存在。虽然,为了完整地回答这个问题,运算符
==可以用于赋值,例如int success = (rc == LDAP_SUCCESS) -
如果您实际编译代码,您会看到警告。将警告视为错误 - 你有你的错误。 :)
-
rc == LDAP_SUCCESS;是 NOP。 -
注意:不要盲目地将
rc == LDAP_SUCCESS替换为rc = LDAP_SUCCESS(这可能会删除警告),但要检查rc在done标签后的使用情况并采取相应措施。