projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Import s2_pkt.c wbuf fixes from OpenSSL_0_9_6-stable branch.
[openssl.git]
/
ssl
/
s2_lib.c
diff --git
a/ssl/s2_lib.c
b/ssl/s2_lib.c
index 5ddba23a066208011202b774beb0e2fe114d34ab..52a2b279638940b2192ad700f0833e6fe543a9ce 100644
(file)
--- a/
ssl/s2_lib.c
+++ b/
ssl/s2_lib.c
@@
-260,6
+260,9
@@
SSL_CIPHER *ssl2_get_cipher(unsigned int u)
int ssl2_pending(SSL *s)
{
int ssl2_pending(SSL *s)
{
+ /* Unlike ssl2_pending, this one probably works (if read-ahead
+ * is disabled), but it should be examined
+ * XXX */
return(s->s2->ract_data_length);
}
return(s->s2->ract_data_length);
}
@@
-267,13
+270,19
@@
int ssl2_new(SSL *s)
{
SSL2_STATE *s2;
{
SSL2_STATE *s2;
- if ((s2=
M
alloc(sizeof *s2)) == NULL) goto err;
+ if ((s2=
OPENSSL_m
alloc(sizeof *s2)) == NULL) goto err;
memset(s2,0,sizeof *s2);
memset(s2,0,sizeof *s2);
- if ((s2->rbuf=Malloc(
- SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER+2)) == NULL) goto err;
- if ((s2->wbuf=Malloc(
+#if SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER + 3 > SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER + 2
+# error "assertion failed"
+#endif
+
+ if ((s2->rbuf=OPENSSL_malloc(
SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER+2)) == NULL) goto err;
SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER+2)) == NULL) goto err;
+ /* wbuf needs one byte more because when using two-byte headers,
+ * we leave the first byte unused in do_ssl_write (s2_pkt.c) */
+ if ((s2->wbuf=OPENSSL_malloc(
+ SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER+3)) == NULL) goto err;
s->s2=s2;
ssl2_clear(s);
s->s2=s2;
ssl2_clear(s);
@@
-281,9
+290,9
@@
int ssl2_new(SSL *s)
err:
if (s2 != NULL)
{
err:
if (s2 != NULL)
{
- if (s2->wbuf != NULL)
F
ree(s2->wbuf);
- if (s2->rbuf != NULL)
F
ree(s2->rbuf);
-
F
ree(s2);
+ if (s2->wbuf != NULL)
OPENSSL_f
ree(s2->wbuf);
+ if (s2->rbuf != NULL)
OPENSSL_f
ree(s2->rbuf);
+
OPENSSL_f
ree(s2);
}
return(0);
}
}
return(0);
}
@@
-296,10
+305,10
@@
void ssl2_free(SSL *s)
return;
s2=s->s2;
return;
s2=s->s2;
- if (s2->rbuf != NULL)
F
ree(s2->rbuf);
- if (s2->wbuf != NULL)
F
ree(s2->wbuf);
+ if (s2->rbuf != NULL)
OPENSSL_f
ree(s2->rbuf);
+ if (s2->wbuf != NULL)
OPENSSL_f
ree(s2->wbuf);
memset(s2,0,sizeof *s2);
memset(s2,0,sizeof *s2);
-
F
ree(s2);
+
OPENSSL_f
ree(s2);
s->s2=NULL;
}
s->s2=NULL;
}
@@
-384,7
+393,7
@@
SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p)
cpp=(SSL_CIPHER **)OBJ_bsearch((char *)&cp,
(char *)sorted,
SSL2_NUM_CIPHERS,sizeof(SSL_CIPHER *),
cpp=(SSL_CIPHER **)OBJ_bsearch((char *)&cp,
(char *)sorted,
SSL2_NUM_CIPHERS,sizeof(SSL_CIPHER *),
-
(int (*)())
ssl_cipher_ptr_id_cmp);
+
FP_ICC
ssl_cipher_ptr_id_cmp);
if ((cpp == NULL) || !(*cpp)->valid)
return(NULL);
else
if ((cpp == NULL) || !(*cpp)->valid)
return(NULL);
else