使用文件md5.c编译Xcode时出现警告

时间:2012-08-08 20:24:58

标签: ios xcode compiler-errors

我在iOS应用中使用md5.c文件。 http://opensource.apple.com/source/cvs/cvs-33/cvs/lib/md5.c?txt

编译时,我收到错误: “ builtin _memset_chk”调用中对“sizeof”的参数与目标的表达式相同;你的意思是取消引用吗?

这就是: memset(ctx,0,sizeof(ctx)); / *如果它是敏感的* /

需要改变什么?

琳达

2 个答案:

答案 0 :(得分:3)

我认为编译器询问您是否要将该行代码更改为:

memset(ctx, 0, sizeof(*ctx));

答案 1 :(得分:0)

你可以通过以下方式摆脱警告:

size_t len = sizeof(ctx);
memset(ctx, 0, len);

但这只会使结构的前4个字节无效。正如@ dans3itz所说,它可能是一个代码错误和sizeof(* ctx)可能就是这个意思。由于评论说这是为了“保护”,因此对于该功能的操作并不是必需的。有趣的是,多年来没有人选择这个代码已经出来了。