Index: generic/nsfUtil.c =================================================================== diff -u -r0de05aaed50fced1cd80a9408560a38fb2454bcf -rb35419272650b693efaf4ea653c49664debccb48 --- generic/nsfUtil.c (.../nsfUtil.c) (revision 0de05aaed50fced1cd80a9408560a38fb2454bcf) +++ generic/nsfUtil.c (.../nsfUtil.c) (revision b35419272650b693efaf4ea653c49664debccb48) @@ -100,7 +100,7 @@ */ char * Nsf_ltoa(char *buf, long i, int *lengthPtr) { - int nr_written, negative; + int nr_written, negative; char tmp[LONG_AS_STRING], *pointer = &tmp[1], *string, *p; nonnull_assert(buf != NULL); @@ -114,18 +114,25 @@ } else { nr_written = negative = 0; } + /* + * Convert the binary value to a digit string in reversed order to the tmp + * buffer since we do not know the length. + */ do { nr_written++; - *pointer++ = (char)(i%10 + '0'); + *pointer++ = (char)((i % 10) + '0'); i /= 10; } while (i); p = string = buf; if (negative != 0) { *p++ = '-'; } + /* + * Copy number (reversed) from tmp to buf. + */ while ((*p++ = *--pointer)) { - ; /* copy number (reversed) from tmp to buf */ + ; } *lengthPtr = nr_written;