首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请解释一下OpenSSL CVE-2022-3786‘大小’的变化。

请解释一下OpenSSL CVE-2022-3786‘大小’的变化。
EN

Stack Overflow用户
提问于 2022-11-02 00:01:51
回答 1查看 71关注 0票数 0

这两种大型运营商的使用有什么区别?

出发地:https://github.com/openssl/openssl/commit/680e65b94c916af259bfdc2e25f1ab6e0c7a97d6?diff=split

代码语言:javascript
复制
unsigned int *pDecoded

..。

代码语言:javascript
复制
memmove(pDecoded + i + 1, pDecoded + i, (written_out - i) * sizeof *pDecoded);
memmove(pDecoded + i + 1, pDecoded + i, (written_out - i) * sizeof (*pDecoded));

我认为sizeof *PDecoded返回指向无符号int的大量指针。而sizeof (*pDecoded)则返回相当大的无符号int。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-02 00:22:40

没有区别;这些表达式是等价的。

代码语言:javascript
复制
#include <stdio.h>

int main(void)
{
    unsigned int *foo;

    printf("sizeof foo <%zu> | sizeof *foo <%zu> or <%zu>\n",
            sizeof foo, sizeof *foo, sizeof (*foo));
}

输出(在我的机器上):

代码语言:javascript
复制
sizeof foo <8> | sizeof *foo <4> or <4>

这看起来是个风格选择。文件中sizeof的唯一其他用法也有多余的括号:

代码语言:javascript
复制
char a_ulabel[LABEL_BUF_SIZE + 1];
size_t a_size = sizeof(a_ulabel);

只有当操作数是类型时才需要括号。

代码语言:javascript
复制
sizeof (int)

否则,它们被用来影响运算符优先

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74283014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档