]> andersk Git - openssh.git/blobdiff - packet.c
- stevesk@cvs.openbsd.org 2006/07/05 02:42:09
[openssh.git] / packet.c
index 65fb31d2e0ff2f6d6c6e55707568ec145e1d2852..ba2843786f4aaef4c08540743db0f79bd7d7191e 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -1,3 +1,4 @@
+/* $OpenBSD: packet.c,v 1.132 2006/07/05 02:42:09 stevesk Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
 #include "includes.h"
  
 #include "openbsd-compat/sys-queue.h"
+#include <sys/socket.h>
+
 #include <netinet/in_systm.h>
+#include <netinet/in.h>
 #include <netinet/ip.h>
 
 #include "xmalloc.h"
@@ -47,7 +51,6 @@
 #include "packet.h"
 #include "bufaux.h"
 #include "crc32.h"
-#include "getput.h"
 
 #include "compress.h"
 #include "deattack.h"
@@ -259,6 +262,7 @@ packet_get_keyiv_len(int mode)
 
        return (cipher_get_keyiv_len(cc));
 }
+
 void
 packet_set_iv(int mode, u_char *dat)
 {
@@ -271,6 +275,7 @@ packet_set_iv(int mode, u_char *dat)
 
        cipher_set_keyiv(cc, dat);
 }
+
 int
 packet_get_ssh1_cipher(void)
 {
@@ -472,31 +477,37 @@ packet_put_char(int value)
 
        buffer_append(&outgoing_packet, &ch, 1);
 }
+
 void
 packet_put_int(u_int value)
 {
        buffer_put_int(&outgoing_packet, value);
 }
+
 void
 packet_put_string(const void *buf, u_int len)
 {
        buffer_put_string(&outgoing_packet, buf, len);
 }
+
 void
 packet_put_cstring(const char *str)
 {
        buffer_put_cstring(&outgoing_packet, str);
 }
+
 void
 packet_put_raw(const void *buf, u_int len)
 {
        buffer_append(&outgoing_packet, buf, len);
 }
+
 void
 packet_put_bignum(BIGNUM * value)
 {
        buffer_put_bignum(&outgoing_packet, value);
 }
+
 void
 packet_put_bignum2(BIGNUM * value)
 {
@@ -550,7 +561,7 @@ packet_send1(void)
        /* Add check bytes. */
        checksum = ssh_crc32(buffer_ptr(&outgoing_packet),
            buffer_len(&outgoing_packet));
-       PUT_32BIT(buf, checksum);
+       put_u32(buf, checksum);
        buffer_append(&outgoing_packet, buf, 4);
 
 #ifdef PACKET_DEBUG
@@ -559,7 +570,7 @@ packet_send1(void)
 #endif
 
        /* Append to output. */
-       PUT_32BIT(buf, len);
+       put_u32(buf, len);
        buffer_append(&output, buf, 4);
        cp = buffer_append_space(&output, buffer_len(&outgoing_packet));
        cipher_crypt(&send_context, cp, buffer_ptr(&outgoing_packet),
@@ -762,7 +773,7 @@ packet_send2_wrapped(void)
        /* packet_length includes payload, padding and padding length field */
        packet_length = buffer_len(&outgoing_packet) - 4;
        cp = buffer_ptr(&outgoing_packet);
-       PUT_32BIT(cp, packet_length);
+       put_u32(cp, packet_length);
        cp[4] = padlen;
        DBG(debug("send: len %d (includes padlen %d)", packet_length+4, padlen));
 
@@ -779,7 +790,7 @@ packet_send2_wrapped(void)
            buffer_len(&outgoing_packet));
        /* append unencrypted MAC */
        if (mac && mac->enabled)
-               buffer_append(&output, (char *)macbuf, mac->mac_len);
+               buffer_append(&output, macbuf, mac->mac_len);
 #ifdef PACKET_DEBUG
        fprintf(stderr, "encrypted: ");
        buffer_dump(&output);
@@ -869,7 +880,7 @@ packet_read_seqnr(u_int32_t *seqnr_p)
        char buf[8192];
        DBG(debug("packet_read()"));
 
-       setp = (fd_set *)xmalloc(howmany(connection_in+1, NFDBITS) *
+       setp = (fd_set *)xcalloc(howmany(connection_in+1, NFDBITS),
            sizeof(fd_mask));
 
        /* Since we are blocking, ensure that all written packets have been sent. */
@@ -960,7 +971,7 @@ packet_read_poll1(void)
                return SSH_MSG_NONE;
        /* Get length of incoming packet. */
        cp = buffer_ptr(&input);
-       len = GET_32BIT(cp);
+       len = get_u32(cp);
        if (len < 1 + 2 + 2 || len > 256 * 1024)
                packet_disconnect("Bad packet length %u.", len);
        padded_len = (len + 8) & ~7;
@@ -980,7 +991,7 @@ packet_read_poll1(void)
         * Ariel Futoransky(futo@core-sdi.com)
         */
        if (!receive_context.plaintext &&
-           detect_attack(buffer_ptr(&input), padded_len, NULL) == DEATTACK_DETECTED)
+           detect_attack(buffer_ptr(&input), padded_len) == DEATTACK_DETECTED)
                packet_disconnect("crc32 compensation attack: network attack detected");
 
        /* Decrypt data to incoming_packet. */
@@ -1008,7 +1019,7 @@ packet_read_poll1(void)
                    len, buffer_len(&incoming_packet));
 
        cp = (u_char *)buffer_ptr(&incoming_packet) + len - 4;
-       stored_checksum = GET_32BIT(cp);
+       stored_checksum = get_u32(cp);
        if (checksum != stored_checksum)
                packet_disconnect("Corrupted check bytes on input.");
        buffer_consume_end(&incoming_packet, 4);
@@ -1057,7 +1068,7 @@ packet_read_poll2(u_int32_t *seqnr_p)
                cipher_crypt(&receive_context, cp, buffer_ptr(&input),
                    block_size);
                cp = buffer_ptr(&incoming_packet);
-               packet_length = GET_32BIT(cp);
+               packet_length = get_u32(cp);
                if (packet_length < 1 + 4 || packet_length > 256 * 1024) {
 #ifdef PACKET_DEBUG
                        buffer_dump(&incoming_packet);
@@ -1411,7 +1422,7 @@ packet_write_wait(void)
 {
        fd_set *setp;
 
-       setp = (fd_set *)xmalloc(howmany(connection_out + 1, NFDBITS) *
+       setp = (fd_set *)xcalloc(howmany(connection_out + 1, NFDBITS),
            sizeof(fd_mask));
        packet_write_poll();
        while (packet_have_data_to_write()) {
@@ -1540,7 +1551,7 @@ packet_send_ignore(int nbytes)
        for (i = 0; i < nbytes; i++) {
                if (i % 4 == 0)
                        rnd = arc4random();
-               packet_put_char(rnd & 0xff);
+               packet_put_char((u_char)rnd & 0xff);
                rnd >>= 8;
        }
 }
This page took 0.155096 seconds and 4 git commands to generate.