smalloc(biglen) : srealloc(pktin.data, biglen);
smalloc(biglen) : srealloc(pktin.data, biglen); #endif
static void get_packet(void){    unsigned char buf[4];    int ret;    int len, pad, biglen;next_packet:    pktin.type = 0;    pktin.length = 0;    ret = s_read(buf, 4);    if (ret != 4) {	closesocket(s);	s = INVALID_SOCKET;	return;    }    len = GET_32BIT(buf);	#ifdef FWHACK    if (len == 0x52656d6f) {	len = 0x300;    }#endif    pad = 8 - (len % 8);    biglen = len + pad;    len -= 5;			/* type and CRC */    pktin.length = len;    if (pktin.maxlen < biglen) {	pktin.maxlen = biglen;	pktin.data = (pktin.data == NULL) ? 	             smalloc(biglen) : srealloc(pktin.data, biglen);    }    ret = s_read(pktin.data, biglen);    if (ret != biglen) {	closesocket(s);	s = INVALID_SOCKET;	return;    }    if (cipher)	cipher->decrypt(pktin.data, biglen);    pktin.type = pktin.data[pad];    pktin.body = pktin.data + pad + 1;    if (pktin.type == SSH_MSG_DEBUG) {	if (verbose) {	    int len = GET_32BIT(pktin.body);	    fprintf(stderr, "Remote: ");	    fwrite(pktin.body + 4, len, 1, stderr);	    fprintf(stderr, "\n");	}	goto next_packet;    }    if (pktin.type == SSH_MSG_IGNORE) {	goto next_packet;    }}