diff options
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r-- | monitor_wrap.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c index 1719f89d2..78be2915f 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c | |||
@@ -25,7 +25,7 @@ | |||
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "includes.h" | 27 | #include "includes.h" |
28 | RCSID("$OpenBSD: monitor_wrap.c,v 1.15 2002/07/04 04:15:33 deraadt Exp $"); | 28 | RCSID("$OpenBSD: monitor_wrap.c,v 1.16 2002/07/04 10:41:47 markus Exp $"); |
29 | 29 | ||
30 | #include <openssl/bn.h> | 30 | #include <openssl/bn.h> |
31 | #include <openssl/dh.h> | 31 | #include <openssl/dh.h> |
@@ -446,7 +446,6 @@ mm_newkeys_to_blob(int mode, u_char **blobp, u_int *lenp) | |||
446 | { | 446 | { |
447 | Buffer b; | 447 | Buffer b; |
448 | int len; | 448 | int len; |
449 | u_char *buf; | ||
450 | Enc *enc; | 449 | Enc *enc; |
451 | Mac *mac; | 450 | Mac *mac; |
452 | Comp *comp; | 451 | Comp *comp; |
@@ -484,16 +483,14 @@ mm_newkeys_to_blob(int mode, u_char **blobp, u_int *lenp) | |||
484 | buffer_put_cstring(&b, comp->name); | 483 | buffer_put_cstring(&b, comp->name); |
485 | 484 | ||
486 | len = buffer_len(&b); | 485 | len = buffer_len(&b); |
487 | buf = xmalloc(len); | ||
488 | memcpy(buf, buffer_ptr(&b), len); | ||
489 | memset(buffer_ptr(&b), 0, len); | ||
490 | buffer_free(&b); | ||
491 | if (lenp != NULL) | 486 | if (lenp != NULL) |
492 | *lenp = len; | 487 | *lenp = len; |
493 | if (blobp != NULL) | 488 | if (blobp != NULL) { |
494 | *blobp = buf; | 489 | *blobp = xmalloc(len); |
495 | else | 490 | memcpy(*blobp, buffer_ptr(&b), len); |
496 | xfree(blobp); | 491 | } |
492 | memset(buffer_ptr(&b), 0, len); | ||
493 | buffer_free(&b); | ||
497 | return len; | 494 | return len; |
498 | } | 495 | } |
499 | 496 | ||