148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
+
+
+
+
+
+
-
+
+
|
biglen = len + pad;
len -= 5; /* type and CRC */
pktin.length = len;
if (pktin.maxlen < biglen) {
pktin.maxlen = biglen;
#ifdef MSCRYPTOAPI
/* Allocate enough buffer space for extra block
* for MS CryptEncrypt() */
pktin.data = (pktin.data == NULL ? malloc(biglen+8) :
realloc(pktin.data, biglen+8));
#else
pktin.data = (pktin.data == NULL ? malloc(biglen) :
realloc(pktin.data, biglen));
realloc(pktin.data, biglen));
#endif
if (!pktin.data)
fatalbox("Out of memory");
}
p = pktin.data, to_read = biglen;
while (to_read > 0) {
static int chunk;
|
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
|
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
+
+
+
+
+
+
+
|
len += 5; /* type and CRC */
pad = 8 - (len%8);
biglen = len + pad;
pktout.length = len-5;
if (pktout.maxlen < biglen) {
pktout.maxlen = biglen;
#ifdef MSCRYPTOAPI
/* Allocate enough buffer space for extra block
* for MS CryptEncrypt() */
pktout.data = (pktout.data == NULL ? malloc(biglen+8) :
realloc(pktout.data, biglen+8));
#else
pktout.data = (pktout.data == NULL ? malloc(biglen+4) :
realloc(pktout.data, biglen+4));
#endif
if (!pktout.data)
fatalbox("Out of memory");
}
pktout.type = type;
pktout.body = pktout.data+4+pad+1;
}
|
681
682
683
684
685
686
687
688
689
690
691
692
693
694
|
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
|
+
+
+
+
+
|
SOCKADDR_IN addr;
struct hostent *h;
unsigned long a;
#ifdef FWHACK
char *FWhost;
int FWport;
#endif
#ifdef MSCRYPTOAPI
if(crypto_startup() == 0)
return "Microsoft high encryption pack not installed!";
#endif
savedhost = malloc(1+strlen(host));
if (!savedhost)
fatalbox("Out of memory");
strcpy(savedhost, host);
#ifdef FWHACK
|