LZ说的是itexpress版的事情吧。华为有段内核代码,
char tmp[32];
copy_from_user(from, tmp, len);
即在copy前没有检查len会不会超过32。这样应该是有严重安全隐患的,
“应该”是memcpy我肯定,copy_from_user内部不会万一有if(len > 16) return这类的事情吧。
一拨数折的是,拍华为的自己也不咋滴,声称刚看完谭浩强的书,上来先把copy_from_user去掉,直接去访问用户态的buffer,然后出错时返回EFAULT而不是-EFAULT。系统调用的返回值,一般=0成功,<0失败,EFAULT是个正数。最后原代码字符串转数,如过去可以'4 ', ' 4'的,他给改成只能用'4'了。然后他意识到了自己的错误,光明磊落地没有删帖而是补充说明了3点,最后一点(截至我看帖时)我觉得他没有分清字母和字符,但也可能是笔误
--
FROM 106.121.168.*