=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/packet.c,v retrieving revision 1.112.2.2 retrieving revision 1.113 diff -u -r1.112.2.2 -r1.113 --- src/usr.bin/ssh/packet.c 2005/03/10 17:15:04 1.112.2.2 +++ src/usr.bin/ssh/packet.c 2004/05/11 19:01:43 1.113 @@ -37,7 +37,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: packet.c,v 1.112.2.2 2005/03/10 17:15:04 brad Exp $"); +RCSID("$OpenBSD: packet.c,v 1.113 2004/05/11 19:01:43 deraadt Exp $"); #include @@ -314,10 +314,13 @@ packet_set_nonblocking(void) { /* Set the socket into non-blocking mode. */ - set_nonblock(connection_in); + if (fcntl(connection_in, F_SETFL, O_NONBLOCK) < 0) + error("fcntl O_NONBLOCK: %.100s", strerror(errno)); - if (connection_out != connection_in) - set_nonblock(connection_out); + if (connection_out != connection_in) { + if (fcntl(connection_out, F_SETFL, O_NONBLOCK) < 0) + error("fcntl O_NONBLOCK: %.100s", strerror(errno)); + } } /* Returns the socket used for reading. */ @@ -502,7 +505,7 @@ u_char buf[8], *cp; int i, padding, len; u_int checksum; - u_int32_t rnd = 0; + u_int32_t rand = 0; /* * If using packet compression, compress the payload of the outgoing @@ -528,9 +531,9 @@ cp = buffer_ptr(&outgoing_packet); for (i = 0; i < padding; i++) { if (i % 4 == 0) - rnd = arc4random(); - cp[7 - i] = rnd & 0xff; - rnd >>= 8; + rand = arc4random(); + cp[7 - i] = rand & 0xff; + rand >>= 8; } } buffer_consume(&outgoing_packet, 8 - padding); @@ -575,18 +578,18 @@ Comp *comp; CipherContext *cc; u_int64_t *max_blocks; - int crypt_type; + int encrypt; debug2("set_newkeys: mode %d", mode); if (mode == MODE_OUT) { cc = &send_context; - crypt_type = CIPHER_ENCRYPT; + encrypt = CIPHER_ENCRYPT; p_send.packets = p_send.blocks = 0; max_blocks = &max_blocks_out; } else { cc = &receive_context; - crypt_type = CIPHER_DECRYPT; + encrypt = CIPHER_DECRYPT; p_read.packets = p_read.blocks = 0; max_blocks = &max_blocks_in; } @@ -615,7 +618,7 @@ mac->enabled = 1; DBG(debug("cipher_init_context: %d", mode)); cipher_init(cc, enc->cipher, enc->key, enc->key_len, - enc->iv, enc->block_size, crypt_type); + enc->iv, enc->block_size, encrypt); /* Deleting the keys does not gain extra security */ /* memset(enc->iv, 0, enc->block_size); memset(enc->key, 0, enc->key_len); */ @@ -649,7 +652,7 @@ u_char padlen, pad; u_int packet_length = 0; u_int i, len; - u_int32_t rnd = 0; + u_int32_t rand = 0; Enc *enc = NULL; Mac *mac = NULL; Comp *comp = NULL; @@ -708,9 +711,9 @@ /* random padding */ for (i = 0; i < padlen; i++) { if (i % 4 == 0) - rnd = arc4random(); - cp[i] = rnd & 0xff; - rnd >>= 8; + rand = arc4random(); + cp[i] = rand & 0xff; + rand >>= 8; } } else { /* clear padding */ @@ -976,8 +979,6 @@ buffer_len(&compression_buffer)); } type = buffer_get_char(&incoming_packet); - if (type < SSH_MSG_MIN || type > SSH_MSG_MAX) - packet_disconnect("Invalid ssh1 packet type: %d", type); return type; } @@ -1090,8 +1091,6 @@ * return length of payload (without type field) */ type = buffer_get_char(&incoming_packet); - if (type < SSH2_MSG_MIN || type >= SSH2_MSG_LOCAL_MIN) - packet_disconnect("Invalid ssh2 packet type: %d", type); if (type == SSH2_MSG_NEWKEYS) set_newkeys(MODE_IN); #ifdef PACKET_DEBUG @@ -1485,16 +1484,16 @@ void packet_send_ignore(int nbytes) { - u_int32_t rnd = 0; + u_int32_t rand = 0; int i; packet_start(compat20 ? SSH2_MSG_IGNORE : SSH_MSG_IGNORE); packet_put_int(nbytes); for (i = 0; i < nbytes; i++) { if (i % 4 == 0) - rnd = arc4random(); - packet_put_char(rnd & 0xff); - rnd >>= 8; + rand = arc4random(); + packet_put_char(rand & 0xff); + rand >>= 8; } }