Blog

Holiday stuff
Pascal Cuoq on 8 August 2011

I do not expect that many people are diligently working at this time of year, and this is my excuse for posting this series of productivity-wasting links. Some of them are even on-topic. For those who missed it, GNU/Linux Magazine/France has a summer special [removed dead link] on the C...

Read More

Donut gibberish
Pascal Cuoq on 7 August 2011

Hey, I left out one alarm last time: donut.c:15 ... out of bounds read. assert \valid(". -~:;=!*#$@"+tmp_7); This corresponds to ". -~:;=!*#$@"[N>0?N:0] in the obfuscated code. I wanted to have a blog post about this construct in particular because I was curious whether it would break the content management system's...

Read More

We have a Csmith-proof framework
Pascal Cuoq on 30 July 2011

Csmith that I mentioned earlier in this blog is a random generator of C programs. That much sounds easy but it generates only well-defined programs which two or more compilers have no excuse for compiling into executables that produce different results. And it generates varied and interesting enough C programs...

Read More

Animated donut: quickly sorting out alarms
Pascal Cuoq on 29 July 2011

This post follows that post. It is a brief survey of the alarms obtained when analyzing donut.c such as a programmer might do when ey is only trying to find bugs or in the context of verification as a first step to get an estimate on the difficulty of the...

Read More

Fun with usual arithmetic conversions
Pascal Cuoq on 26 July 2011

A facetious colleague reports the following program as a bug: int main () { signed char c=0; while(1) c++; return 0; } The commandline frama-c -val -val-signed-overflow-alarms charpp.c, he says, does not emit any alarm for the c++; instruction. Indeed, the c++; above is equivalent to c = (signed char)...

Read More