All pastes #636059 Raw Edit

Miscellany

public text v1 · immutable
#636059 ·published 2007-07-27 16:09 UTC
rendered paste body
int unpack_int(buffer_ptr b)
{
	int i, count = 0;
	char num[12];
	byte *bp;

	bp = (byte *) num;

	if (b->read_index > b->len) {
		return(-1);
	}

//	printf("unpack_int(): len        = %d\n", b->len);
//	printf("unpack_int(): read_index = %d\n", b->read_index);

	while (b->data[b->read_index] != ' ' && b->read_index < b->len) {

                /*  Moved from the end of each itteration to the beginning.  */
		if (count == 12 || b->read_index > b->len) {
			fprintf(stderr, "unpack_int(): buffer overrun\n");
			return(-1);
		}

		i = b->read_index;

//		printf("unpack_int(): read_index = %d\n", i);
//		printf("unpack_int(): b->data[i] = %d %c\n", b->data[i],
//			b->data[i]);

		*(bp++) = b->data[i];

		b->read_index++;

		count++;

//		printf("unpack_int(): count = %d\n", count);
	}

	*(bp) = 0;
	b->read_index++;

//	printf("unpack_int(): num = |%s|\n", num);

	return (atoi(num));
}