diff options
-rw-r--r-- | packet.c (renamed from common-packet.c) | 4 | ||||
-rw-r--r-- | process-packet.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/common-packet.c b/packet.c index 39387bf..886fe67 100644 --- a/common-packet.c +++ b/packet.c @@ -444,6 +444,10 @@ void encrypt_packet() { } /* finished with payload */ + buf_burn(ses.writepayload); /* XXX This is probably a good idea, and isn't + _that_ likely to hurt performance too badly. + Buffers can have cleartext passwords etc, or + other sensitive data */ buf_setpos(ses.writepayload, 0); buf_setlen(ses.writepayload, 0); diff --git a/process-packet.c b/process-packet.c index afa45ef..f9f6dee 100644 --- a/process-packet.c +++ b/process-packet.c @@ -116,7 +116,7 @@ void process_packet() { * less-than-or-equal-to 60 ( == MAX_UNAUTH_PACKET_TYPE ). * NOTE: if the protocol changes and new types are added, revisit this * assumption */ - if ( !ses.authdone && type > MAX_UNAUTH_PACKET_TYPE ) { + if ( !ses.authstate.authdone && type > MAX_UNAUTH_PACKET_TYPE ) { dropbear_exit("received message %d before userauth", type); } @@ -138,6 +138,7 @@ void process_packet() { recv_unimplemented(); out: + buf_burn(ses.payload); /* Clear the memory to avoid swapping it out */ buf_free(ses.payload); ses.payload = NULL; |