aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-03-19rc: avoid undefined CXi Wang1-4/+4
There are two bugs in pdec() on INT_MIN: * wrong output. `n = 1-n' should be `n = -1-n' when n is INT_MIN. * infinite loop. gcc optimizes `if(n>=0)' into `if(true)' because `-INT_MIN' (signed integer overflow) is undefined behavior in C, and gcc assumes the negation of a negative number must be positive. The resulting binary keeps printing '-' forever given INT_MIN. Try the simplified pdec.c below. $ gcc pdec.c $ ./a.out -2147483648 --214748364* $ gcc pdec.c -O2 $ ./a.out -2147483648 <infinite loop> $ gcc pdec.c -O2 -D__PATCH__ $ ./a.out -2147483648 -2147483648 === pdec.c === #include <stdio.h> #include <stdlib.h> #include <limits.h> #define io void void pchr(io *f, int c) { putchar(c); } void pdec(io *f, int n) { if(n<0){ #ifndef __PATCH__ n=-n; if(n>=0){ pchr(f, '-'); pdec(f, n); return; } /* n is two's complement minimum integer */ n = 1-n; #else if(n!=INT_MIN){ pchr(f, '-'); pdec(f, -n); return; } /* n is two's complement minimum integer */ n = -(INT_MIN+1); #endif pchr(f, '-'); pdec(f, n/10); pchr(f, n%10+'1'); return; } if(n>9) pdec(f, n/10); pchr(f, n%10+'0'); } int main(int argc, char **argv) { int n = atoi(argv[1]); pdec(NULL, n); putchar('\n'); } R=rsc CC=plan9port.codebot https://codereview.appspot.com/7241055
2013-03-19libsec: avoid undefined CXi Wang1-2/+1
gcc compiles `p + length < p' into 'length < 0' since pointer overflow is undefined behavior in C. This breaks the check against a large `length'. Use `length > pend - p' instead. There's no need to check `length < 0' since `length' is from length_decode() and should be non-negative. === Try the simplified code. void bar(void); void foo(unsigned char *p, int length) { if (p + length < p) bar(); } $ gcc -S -o - t.c -O2 ... foo: .LFB0: .cfi_startproc testl %esi, %esi js .L4 rep ret .L4: jmp bar .cfi_endproc Clearly `p' is not used at all. R=rsc CC=plan9port.codebot https://codereview.appspot.com/7231069
2013-03-11xd: accept -S for 8-byte swapRuss Cox2-0/+39
R=rsc https://codereview.appspot.com/7565045
2013-03-07devdraw: control+click = button 2, alt/shift+click = button 3Russ Cox3-26/+111
For single-button mouse users. R=rsc https://codereview.appspot.com/7620043
2013-02-08devdraw: silence unused variable warningsRuss Cox1-2/+6
R=rsc https://codereview.appspot.com/7304064
2013-02-08devdraw: disable XCopyArea optimizationRuss Cox1-2/+5
Ubuntu Precise seems to have a buggy X server that sometimes fails at XCopyArea. Let devdraw do it itself. This will slow down remote X a little bit, but slow and correct is better than fast and broken. R=rsc https://codereview.appspot.com/7310069
2013-01-30fontsrv: fix on X11 when X11H is not definedAlessandro Arzilli1-1/+1
R=rsc CC=plan9port.codebot https://codereview.appspot.com/7228044
2013-01-30libmach: fix crash in dwarfpc (misuse of realloc)Xi Wang1-0/+1
R=rsc CC=plan9port.codebot https://codereview.appspot.com/7225059
2013-01-30fontserv: fix build on FreeBSD 9.1Martin Neubauer1-1/+6
R=rsc https://codereview.appspot.com/7095050
2013-01-30CONTRIBUTORS: three moreRuss Cox1-1/+3
R=rsc https://codereview.appspot.com/7225073
2013-01-19jpegdump: fix build and warningsDavid du Colombier1-7/+8
R=rsc https://codereview.appspot.com/7070070
2013-01-04freq: fix crash with utf > 0xffff (thanks Andrey Mirtchovski)David du Colombier1-2/+2
R=rsc https://codereview.appspot.com/7029054
2013-01-03venti/wrarena: fix arenapart breakageDavid du Colombier1-3/+4
R=rsc https://codereview.appspot.com/7027044
2012-12-18fontsrv: only build when the pieces are thereRuss Cox2-2/+17
2012-12-11fontsrv: fix build on OpenBSD 5.2Christian Kellermann5-2/+14
R=rsc CC=plan9port.codebot https://codereview.appspot.com/6850108
2012-12-09auth/factotum: fix password prompt hang with secstoreDavid du Colombier1-3/+3
R=rsc http://codereview.appspot.com/6906057
2012-12-03fontsrv: make single quotes look like quotesRuss Cox1-3/+15
R=rsc https://codereview.appspot.com/6864051
2012-12-01fontsrv: scaled pjwRuss Cox5-11/+369
R=rsc https://codereview.appspot.com/6854130
2012-11-26acme: retina scaling for scroll bars, buttonRuss Cox2-26/+34
R=rsc http://codereview.appspot.com/6854094
2012-11-26samterm: retina scaling for scroll bars, bordersRuss Cox3-14/+24
R=rsc http://codereview.appspot.com/6844083
2012-11-269term: adjust to dpi changesRuss Cox1-15/+23
R=rsc http://codereview.appspot.com/6847105
2012-11-26libdraw: change DefaultDPI to 133Russ Cox1-1/+1
Let's see if that's any better. R=rsc http://codereview.appspot.com/6850103
2012-11-25devdraw: fake dpi calculation on MacRuss Cox1-0/+8
R=rsc http://codereview.appspot.com/6782115
2012-11-25libframe: auto scale tick for retinaRuss Cox3-10/+24
R=rsc http://codereview.appspot.com/6850102
2012-11-25devdraw: use %R not Fn-F3 for retina toggleRuss Cox1-1/+1
R=rsc http://codereview.appspot.com/6854093
2012-11-25devdraw: add forcedpi toggled by Fn+F3 on MacRuss Cox4-3/+20
R=rsc http://codereview.appspot.com/6846104
2012-11-25acme: set $samfile (same as $%) during executionMarius Eriksen2-0/+3
R=rsc CC=plan9port.codebot http://codereview.appspot.com/6854092
2012-11-25fontsrv: work around a few crashesRuss Cox1-2/+6
Probably not the right fix, but gets us going. R=rsc http://codereview.appspot.com/6782113
2012-11-25devdraw: fix retina modeRuss Cox1-1/+1
R=rsc http://codereview.appspot.com/6847104
2012-11-25libdraw: add scalesizeRuss Cox3-0/+24
R=rsc http://codereview.appspot.com/6855092
2012-11-25draw.h: add DefaultDPIRuss Cox1-1/+2
R=rsc http://codereview.appspot.com/6858071
2012-11-25devdraw, libdraw: add display->dpiRuss Cox4-2/+38
Fixed at 100 right now, but the plan is to make it accurate and then use it. R=rsc http://codereview.appspot.com/6856091
2012-11-25devdraw: restore compilation on OS X 10.6Shenghou Ma3-0/+10
Also add some ignored files to .hgignore R=rsc http://codereview.appspot.com/6842089
2012-10-22acme: use threadspawnd to avoid changing "." of current processRuss Cox1-29/+8
R=rsc http://codereview.appspot.com/6736060
2012-10-22libthread: add threadspawndRuss Cox4-6/+28
R=rsc http://codereview.appspot.com/6742064
2012-10-21acme: add $acmeshell to control execution shellMarius Eriksen4-2/+18
R=rsc CC=plan9port.codebot http://codereview.appspot.com/6614056
2012-10-21fontsrv: x11 supportYuval Pavel Zholkover5-3/+275
R=rsc, 0intro CC=plan9port.codebot http://codereview.appspot.com/6739047
2012-10-21plumb.app: accept plumb:foo as alias for fooRob Kroeger1-1/+16
R=rsc CC=plan9port.codebot http://codereview.appspot.com/5495046
2012-10-21devdraw: map X11 dead_diaresis to double quoteCaio Oliveira2-39/+43
R=rsc CC=plan9port.codebot http://codereview.appspot.com/6690049
2012-10-21libmemdraw: fix int size bugErik Quanstrom1-1/+2
R=rsc, quanstro CC=plan9port.codebot http://codereview.appspot.com/6657043
2012-10-21silence more warningsRuss Cox15-299/+307
R=rsc http://codereview.appspot.com/6744056
2012-10-219c: support clang on MacRuss Cox1-0/+11
R=rsc http://codereview.appspot.com/6744055
2012-10-21fix clang warnings reported by Tuncer AyazRuss Cox24-621/+619
R=rsc http://codereview.appspot.com/6744054
2012-10-209c: add more clang warning silencers, use signed charsRuss Cox1-2/+7
R=rsc http://codereview.appspot.com/6741053
2012-10-20lib9: fix Mac warningRuss Cox1-1/+8
R=rsc http://codereview.appspot.com/6749053
2012-10-20INSTALL: don't try to use \b in acme windowRuss Cox1-0/+2
R=rsc http://codereview.appspot.com/6734051
2012-10-20fix gcc 4.7 warnings (thanks Tuncer Ayaz)Russ Cox14-40/+9
R=rsc http://codereview.appspot.com/6744053
2012-10-20web: fix BROWSER=google-chrome on MacRuss Cox1-0/+3
R=rsc http://codereview.appspot.com/6750046
2012-10-20mount: fix for osxfuseRuss Cox1-2/+4
R=rsc http://codereview.appspot.com/6737052
2012-10-16libframe: use correct text color when paintingRob Kroeger1-6/+12
R=rsc CC=plan9port.codebot http://codereview.appspot.com/6625065