2011-03-10 56 views
0

编译当前gladman AES library,我得到在aes_modes.c警告,都说"warning C4731: ... frame pointer register 'ebx' modified by inline assembly code"Gladman AES库 - 安全忽略编译器警告?

这听起来很令人担忧,我不希望我的应用程序与堆栈损坏崩溃,但我可以勉强读完x86汇编。任何人都可以建议,如果这些警告可以安全地忽略?

回答

0

这是安全的忽略,如果它的保存和恢复。例如。

push ebx 
;use the ebx to do something else 
pop ebx 

看到这个MSDN page,这也解释了什么错误表示。

如果没有在代码中完成,可以添加并测试它。

+0

据我可以告诉这不是在代码中完成的,但它不能像您推荐的那样容易地修复,因为代码似乎使用ebx作为将汇编器结果返回到C的一种方式。 –

+0

Can你指向我的文件在谷歌代码搜索 – Zimbabao

+0

您从http://gladman.plushost.co.uk/oldsite/AES/下载代码? – Zimbabao

0

似乎忽略此警告并不安全。 代码在XP上工作正常,但在Windows 7上测试时,它在aes_decrypt汇编程序中崩溃。我将转向纯粹的C版本。