hyrathb / mentohust

mentohust加入v4支持
467 stars 75 forks source link

ARM架构中出现多次"非指定客户端"错误后才会认证成功 #265

Closed sequencer closed 8 years ago

sequencer commented 8 years ago

如题, 树莓派ubuntu&archlinux测试 地点在紫菘12 欢迎上门测试(

hyrathb commented 8 years ago

回家了,年后吧……

sequencer commented 8 years ago

PrPr

updateing commented 8 years ago

R7000, ARM, Linux 2.6.36.4, uClibc 0.9.32.1

printf("%02x", (char)0x98); 得到98

同样的语句在Ubuntu 15.10, x86-64, Linux 4.2.0-27, glibc 2.21得到ffffff98

这样的语句目前发现在checkV4.ccase 0中有出现。也许这是问题所在吧……

补:改为(signed char)0x98后R7000的表现与电脑一致。

补2:没发现在switch之前也有char的类型转换……改完以后R7000认证一切正常。

sequencer commented 8 years ago

我在raspberry pi archlinux,貌似在每个case中都有问题. 你看看是不是能解决? 我住在校外去了,没法调试了(:з」∠)

updateing commented 8 years ago

我现在不能复现问题了……

在进入case之前还有两个转换也有问题,它们会影响到算法的选择。这里修复了吗?

sequencer commented 8 years ago

我中午回去试试

hyrathb commented 8 years ago

oh, thanks. 不过signed char和char有区别吗?现在我也有时间看一下了。

hyrathb commented 8 years ago

好吧,确实char的实现跟编译器有关……如果没有修复的话,就reopen吧。