Nobody Believes Fred



Ubuntu Stack Smashing 续

今天忍不住又捣腾了一把,验证了昨天的假设,Ubuntu 10.04下默认打开gcc的stack protector 功能,Fedora 13下默认关闭。

使用 gcc -fstack-protector 可以将该功能打开。使用gcc -fno-stack-protector 可以将该功能关闭。之所以昨天没试出来是因为,昨天的工程不止一个Makefile里定义了 CC = gcc. 今天改全,Ubuntu 下运行成功。在Fedora下加上保护,可以复现。

没想到这么快就解决了,爽。


Ubuntu 下 stack smashing

近日想把一个Fedora 13下工程移植到Ubuntu下,因为个人喜欢Ubuntu多一些,而且这是难得由我做主的事,呵呵。本来以为主要的工作可能会花在编译上,而且估计问题不大,但事情往往不是我们所想的那样,有时候看上去简单的事情其实很麻烦。
编译很简单,对GCC没有特别的要求,因为涉及到网络,需要装上libcap, apt-get 之,再编,OK。运行,初始化阶段即提示 stack smashing detected. 没改动任何代码,在Fedora 13运行OK,到Ubuntu 10.04上直接起不来,不解。 Google之,信息很少,大概是说Ubuntu 会默认开启GCC的stack smashing proctect 功能,Fedora 13下没开? 一哥们貌似也遇到同样的问题,但那哥们好像是类型强转的时候出问题,我去调试代码,由于是多线程的,GDB用的也不熟,未果。时间不多,公司的东西也不准拿回家来。。。(个人以为,我司有些东西送人,人家也是不会要的)。
网上也有传说,用GCC -fno-stack-protector编译就可以去年保护,尝试之,无效,或者是我的Makefile 没改全也不一定。
只好再装上Fedora 13,末得光驱,硬盘安装,中间不小心在Windows下把Grub给写坏了,进了Grub Rescue, 并且找不到Linux的分区,最后厚着脸皮找人来修电脑,真TNND丢人。
结论:初步推断是代码有问题,确实是有栈溢出,在Fedora下没有检测,故暂时看上去OK,Ubuntu下有检测,挂了。并且我尝试去保护的方法不行或者是不完全。暂时无能力解决,Mark一下,以后解决。
还好代码不是我写的...


电脑热挂了

晚上回家,开机,没反应,以为又闹情绪了。再开,仍然没反应,难不成真遇到难得一见的硬件故障了? 倒腾了半天,显卡两个插槽换了好几个来回还是不成。

看见主板上有个温控器的两个小LED显示 点点(表示他无语。。),于是尝试按了下温控器旁边的小开关,滴的一声,O了。

擦,真被热的保护起来了。。

这天气。。


嗯,我又回来了

这个地方以前是不用翻墙来的,偶而来一次,现在来这边基本上可以算越境了,也让这边变成了一个安静的地方,试着重新在这边拾写往日的感觉,写一些有用的东西,不再是无病呻吟了,呵呵。