? contrib/txid/old.txid.c ? contrib/txid/txid.c.xzz Index: contrib/txid/txid.c =================================================================== RCS file: /projects/cvsroot/pgsql/contrib/txid/txid.c,v retrieving revision 1.2 diff -p -u -c -r1.2 txid.c *** contrib/txid/txid.c 8 Oct 2007 20:25:39 -0000 1.2 --- contrib/txid/txid.c 8 Oct 2007 20:46:13 -0000 *************** static txid *** 234,257 **** str2txid(const char *s, const char **endp) { txid val = 0; for (; *s; s++) { ! txid last = val; if (*s < '0' || *s > '9') break; ! ! val = val * 10 + (*s - '0'); /* * check for overflow */ ! if (val > MAX_TXID || (val / 10) != last) { val = 0; break; } } if (endp) *endp = s; --- 234,260 ---- str2txid(const char *s, const char **endp) { txid val = 0; + txid cutoff = MAX_TXID / 10; + txid cutlim = MAX_TXID % 10; for (; *s; s++) { ! unsigned d; if (*s < '0' || *s > '9') break; ! d = *s - '0'; /* * check for overflow */ ! if (val > cutoff || (val == cutoff && d > cutlim)) { val = 0; break; } + + val = val * 10 + d; } if (endp) *endp = s;