From: beck Date: Thu, 24 Apr 2014 06:02:58 +0000 (+0000) Subject: A fantastic way to make a large unsigned number is to assign X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=3d3ea1027d2c023360d7c66ea1775b040c65fc96;p=openbsd A fantastic way to make a large unsigned number is to assign a small signed one to it.. Some people on OpenSSL's list noticed - http://marc.info/?l=openssl-dev&m=139809485525663&w=2 This should fix that, and make sure we don't try to write out insane amounts of stuff. ok miod@ tedu@ --- diff --git a/lib/libssl/s3_pkt.c b/lib/libssl/s3_pkt.c index 5ef25a4059f..2a88b148521 100644 --- a/lib/libssl/s3_pkt.c +++ b/lib/libssl/s3_pkt.c @@ -564,6 +564,8 @@ ssl3_write_bytes(SSL *s, int type, const void *buf_, int len) } } + if (len < tot) + len = tot; n = (len - tot); for (;;) { if (n > s->max_send_fragment) diff --git a/lib/libssl/src/ssl/s3_pkt.c b/lib/libssl/src/ssl/s3_pkt.c index 5ef25a4059f..2a88b148521 100644 --- a/lib/libssl/src/ssl/s3_pkt.c +++ b/lib/libssl/src/ssl/s3_pkt.c @@ -564,6 +564,8 @@ ssl3_write_bytes(SSL *s, int type, const void *buf_, int len) } } + if (len < tot) + len = tot; n = (len - tot); for (;;) { if (n > s->max_send_fragment)