diff options
Diffstat (limited to 'src/lib/libcrypto/bio/bss_dgram.c')
| -rw-r--r-- | src/lib/libcrypto/bio/bss_dgram.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/lib/libcrypto/bio/bss_dgram.c b/src/lib/libcrypto/bio/bss_dgram.c index 79a6c2aa67..72cb19d135 100644 --- a/src/lib/libcrypto/bio/bss_dgram.c +++ b/src/lib/libcrypto/bio/bss_dgram.c | |||
| @@ -211,10 +211,9 @@ dgram_new(BIO *bi) | |||
| 211 | 211 | ||
| 212 | bi->init = 0; | 212 | bi->init = 0; |
| 213 | bi->num = 0; | 213 | bi->num = 0; |
| 214 | data = malloc(sizeof(bio_dgram_data)); | 214 | data = calloc(1, sizeof(bio_dgram_data)); |
| 215 | if (data == NULL) | 215 | if (data == NULL) |
| 216 | return 0; | 216 | return 0; |
| 217 | memset(data, 0x00, sizeof(bio_dgram_data)); | ||
| 218 | bi->ptr = data; | 217 | bi->ptr = data; |
| 219 | 218 | ||
| 220 | bi->flags = 0; | 219 | bi->flags = 0; |
| @@ -773,8 +772,7 @@ BIO_new_dgram_sctp(int fd, int close_flag) | |||
| 773 | * SCTP-AUTH has to be activated for the listening socket | 772 | * SCTP-AUTH has to be activated for the listening socket |
| 774 | * already, otherwise the connected socket won't use it. */ | 773 | * already, otherwise the connected socket won't use it. */ |
| 775 | sockopt_len = (socklen_t)(sizeof(sctp_assoc_t) + 256 * sizeof(uint8_t)); | 774 | sockopt_len = (socklen_t)(sizeof(sctp_assoc_t) + 256 * sizeof(uint8_t)); |
| 776 | authchunks = malloc(sockopt_len); | 775 | authchunks = calloc(1, sockopt_len); |
| 777 | memset(authchunks, 0, sizeof(sockopt_len)); | ||
| 778 | ret = getsockopt(fd, IPPROTO_SCTP, SCTP_LOCAL_AUTH_CHUNKS, authchunks, &sockopt_len); | 776 | ret = getsockopt(fd, IPPROTO_SCTP, SCTP_LOCAL_AUTH_CHUNKS, authchunks, &sockopt_len); |
| 779 | OPENSSL_assert(ret >= 0); | 777 | OPENSSL_assert(ret >= 0); |
| 780 | 778 | ||
| @@ -834,10 +832,9 @@ dgram_sctp_new(BIO *bi) | |||
| 834 | 832 | ||
| 835 | bi->init = 0; | 833 | bi->init = 0; |
| 836 | bi->num = 0; | 834 | bi->num = 0; |
| 837 | data = malloc(sizeof(bio_dgram_sctp_data)); | 835 | data = calloc(1, sizeof(bio_dgram_sctp_data)); |
| 838 | if (data == NULL) | 836 | if (data == NULL) |
| 839 | return 0; | 837 | return 0; |
| 840 | memset(data, 0x00, sizeof(bio_dgram_sctp_data)); | ||
| 841 | #ifdef SCTP_PR_SCTP_NONE | 838 | #ifdef SCTP_PR_SCTP_NONE |
| 842 | data->prinfo.pr_policy = SCTP_PR_SCTP_NONE; | 839 | data->prinfo.pr_policy = SCTP_PR_SCTP_NONE; |
| 843 | #endif | 840 | #endif |
| @@ -1055,8 +1052,7 @@ dgram_sctp_read(BIO *b, char *out, int outl) | |||
| 1055 | struct sctp_authchunks *authchunks; | 1052 | struct sctp_authchunks *authchunks; |
| 1056 | 1053 | ||
| 1057 | optlen = (socklen_t)(sizeof(sctp_assoc_t) + 256 * sizeof(uint8_t)); | 1054 | optlen = (socklen_t)(sizeof(sctp_assoc_t) + 256 * sizeof(uint8_t)); |
| 1058 | authchunks = malloc(optlen); | 1055 | authchunks = calloc(1, optlen); |
| 1059 | memset(authchunks, 0, sizeof(optlen)); | ||
| 1060 | ii = getsockopt(b->num, IPPROTO_SCTP, SCTP_PEER_AUTH_CHUNKS, authchunks, &optlen); | 1056 | ii = getsockopt(b->num, IPPROTO_SCTP, SCTP_PEER_AUTH_CHUNKS, authchunks, &optlen); |
| 1061 | OPENSSL_assert(ii >= 0); | 1057 | OPENSSL_assert(ii >= 0); |
| 1062 | 1058 | ||
| @@ -1122,8 +1118,7 @@ dgram_sctp_write(BIO *b, const char *in, int inl) | |||
| 1122 | if (data->save_shutdown && !BIO_dgram_sctp_wait_for_dry(b)) { | 1118 | if (data->save_shutdown && !BIO_dgram_sctp_wait_for_dry(b)) { |
| 1123 | data->saved_message.bio = b; | 1119 | data->saved_message.bio = b; |
| 1124 | data->saved_message.length = inl; | 1120 | data->saved_message.length = inl; |
| 1125 | data->saved_message.data = malloc(inl); | 1121 | data->saved_message.data = calloc(1, inl); |
| 1126 | memcpy(data->saved_message.data, in, inl); | ||
| 1127 | return inl; | 1122 | return inl; |
| 1128 | } | 1123 | } |
| 1129 | 1124 | ||
| @@ -1250,8 +1245,7 @@ dgram_sctp_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
| 1250 | 1245 | ||
| 1251 | /* Add new key */ | 1246 | /* Add new key */ |
| 1252 | sockopt_len = sizeof(struct sctp_authkey) + 64 * sizeof(uint8_t); | 1247 | sockopt_len = sizeof(struct sctp_authkey) + 64 * sizeof(uint8_t); |
| 1253 | authkey = malloc(sockopt_len); | 1248 | authkey = calloc(1, sockopt_len); |
| 1254 | memset(authkey, 0x00, sockopt_len); | ||
| 1255 | authkey->sca_keynumber = authkeyid.scact_keynumber + 1; | 1249 | authkey->sca_keynumber = authkeyid.scact_keynumber + 1; |
| 1256 | #ifndef __FreeBSD__ | 1250 | #ifndef __FreeBSD__ |
| 1257 | /* This field is missing in FreeBSD 8.2 and earlier, | 1251 | /* This field is missing in FreeBSD 8.2 and earlier, |
