diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/d1_pkt.c | 32 | 
1 files changed, 12 insertions, 20 deletions
| diff --git a/src/lib/libssl/d1_pkt.c b/src/lib/libssl/d1_pkt.c index 0273db236c..4e306829bc 100644 --- a/src/lib/libssl/d1_pkt.c +++ b/src/lib/libssl/d1_pkt.c | |||
| @@ -224,15 +224,8 @@ dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char *priority) | |||
| 224 | 224 | ||
| 225 | rdata = malloc(sizeof(DTLS1_RECORD_DATA)); | 225 | rdata = malloc(sizeof(DTLS1_RECORD_DATA)); | 
| 226 | item = pitem_new(priority, rdata); | 226 | item = pitem_new(priority, rdata); | 
| 227 | if (rdata == NULL || item == NULL) { | 227 | if (rdata == NULL || item == NULL) | 
| 228 | if (rdata != NULL) | 228 | goto err; | 
| 229 | free(rdata); | ||
| 230 | if (item != NULL) | ||
| 231 | pitem_free(item); | ||
| 232 | |||
| 233 | SSLerr(SSL_F_DTLS1_BUFFER_RECORD, ERR_R_INTERNAL_ERROR); | ||
| 234 | return (0); | ||
| 235 | } | ||
| 236 | 229 | ||
| 237 | rdata->packet = s->packet; | 230 | rdata->packet = s->packet; | 
| 238 | rdata->packet_length = s->packet_length; | 231 | rdata->packet_length = s->packet_length; | 
| @@ -254,21 +247,20 @@ dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char *priority) | |||
| 254 | memset(&(s->s3->rbuf), 0, sizeof(SSL3_BUFFER)); | 247 | memset(&(s->s3->rbuf), 0, sizeof(SSL3_BUFFER)); | 
| 255 | memset(&(s->s3->rrec), 0, sizeof(SSL3_RECORD)); | 248 | memset(&(s->s3->rrec), 0, sizeof(SSL3_RECORD)); | 
| 256 | 249 | ||
| 257 | if (!ssl3_setup_buffers(s)) { | 250 | if (!ssl3_setup_buffers(s)) | 
| 258 | SSLerr(SSL_F_DTLS1_BUFFER_RECORD, ERR_R_INTERNAL_ERROR); | 251 | goto err; | 
| 259 | free(rdata); | ||
| 260 | pitem_free(item); | ||
| 261 | return (0); | ||
| 262 | } | ||
| 263 | 252 | ||
| 264 | /* insert should not fail, since duplicates are dropped */ | 253 | /* insert should not fail, since duplicates are dropped */ | 
| 265 | if (pqueue_insert(queue->q, item) == NULL) { | 254 | if (pqueue_insert(queue->q, item) == NULL) | 
| 266 | free(rdata); | 255 | goto err; | 
| 267 | pitem_free(item); | ||
| 268 | return (0); | ||
| 269 | } | ||
| 270 | 256 | ||
| 271 | return (1); | 257 | return (1); | 
| 258 | |||
| 259 | err: | ||
| 260 | SSLerr(SSL_F_DTLS1_BUFFER_RECORD, ERR_R_INTERNAL_ERROR); | ||
| 261 | free(rdata); | ||
| 262 | pitem_free(item); | ||
| 263 | return (0); | ||
| 272 | } | 264 | } | 
| 273 | 265 | ||
| 274 | 266 | ||
