Memcpy仅在iPhone 5s上崩溃

凯萨瓦

全部,

我面临iPhone 5s的一个奇怪问题。我正在HMAC-SHA1使用第三方库在我的应用程序中进行加密。该库使用memcpy,它不知道它是什么,因为我对的内存级别编程不太感兴趣C除了以外,所有iPhone的加密效果都很好64 bit 5s下面是它崩溃的代码(5th line)

void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned int len)
{
unsigned int i, j;

    j = (context->count[0] >> 3) & 63;
    if ((context->count[0] += len << 3) < (len << 3)) context->count[1]++;
    context->count[1] += (len >> 29);
    if ((j + len) > 63) {
        memcpy(&context->buffer[j], data, (i = 64-j));
        SHA1Transform(context->state, context->buffer);
        for ( ; i + 63 < len; i += 64) {
            SHA1Transform(context->state, &data[i]);
        }
        j = 0;
    }
    else i = 0;
    memcpy(&context->buffer[j], &data[i], len - i);
}

以下是崩溃的详细信息

异常类型:EXC_BAD_ACCESS(SIGSEGV)异常子类型:0x001a9c799cbfdcf9处的KERN_INVALID_ADDRESS,由线程触发:0

线程0崩溃:0 libsystem_platform.dylib 0x0000000191c34dc8 _platform_memmove + 40 1 Anyvan 0x00000001001fc6a8 SHA1Update(sha1.c:128)2 Anyvan 0x00000001000c7efc hmac_sha1(hmac.c:73)3 Anyvan 0x00000001000fe7cc -Controller:Controller

任何帮助将不胜感激。

美佳

崩溃的原因是您使用的int不是memcpy尝试将替换为intNSInteger它应该可以正常工作。您可以在此处找到更多信息

iPhone5S使用64位架构,而其他使用32位。两者之间的核心区别之一是系统如何处理整数,如文档中所述。您使用的代码unsigned int在32位和64位上的含义不同,这会导致崩溃。您应该将intcalli更改jNSIntegers,我相信您的代码可以正常工作。或来认为它,你可以尝试简单地替换单词intlong

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么以下代码在iPhone 5而不是iPhone 5S上崩溃?

如何在iPhone 6或5s上支持横向拆分视图?

离子ios应用程序停留在初始屏幕上-在模拟器中工作而不是在iPhone 5s设备上

TouchID在某些iPhone 5S设备上崩溃

Iphone 5s iOS 8.1.2从XIB加载视图控制器时崩溃

iPhone 5s中未显示UIView阴影

Xamarin.Forms和App Center:无法在iPhone 5s上安装iOS版本

在iPhone 5S上访问源120 FPS视频?

应用未在iPhone 5s上安装

尝试使用MonoTouch / iPhone 5s录制120fps视频时崩溃

将UITableView调整为iPhone 5 / 5s

在64位5s iPhone上安装时,为什么应用程序卡住

应用程序在iPhone 5S上崩溃,但在iPhone 4S上没有崩溃。

CABasicAnimation无法在设备(iPhone 5s)上运行

32位应用程序可以在64位iPhone 5S上运行吗?

投射null变量时,为什么iPhone 5S和iPad Air之前的设备不会崩溃?

为armv7编译的iOS应用程序是否可以在iPad Air,iPhone 5S等(armv8设备)上运行?

在非iPhone 5s模拟器上运行任何应用程序时,找不到'/','*',失败的重载

模拟器不起作用-在iPhone 5s模拟器上运行完毕的应用程序时出现空警报

如何在iOS 7.1.1 / iPhone 5s上更改导航栏按钮的颜色

iPhone 5s的偏航范围

没有可用于iPhone 5s编译的架构

iPhone 5 / 5c / 5s系列:NFC仿真

method_getImplementation在64位iPhone 5s上崩溃

iOS OpenGLES无法在iPhone 5s +上渲染图像

在iPhone 5s或更高版本上添加SK3DNode Crashes应用程序

iPhone 5s SpriteKit的绘画奇特之处

iOS 9 Safari Webkit仅在iPad上崩溃(iPhone正常)

问题在 iPhone 5s 上合并音频到视频