mirror of https://github.com/openssl/openssl.git
				
				
				
			Fix BIO_push ref counting for SSL BIO
When pushing a BIO onto an SSL BIO we set the rbio and wbio for the SSL object to be the BIO that has been pushed. Therefore we need to up the ref count for that BIO. The existing code was uping the ref count on the wrong BIO. Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
		
							parent
							
								
									8e3854ac88
								
							
						
					
					
						commit
						eddef30589
					
				|  | @ -327,8 +327,12 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr) | ||||||
|         break; |         break; | ||||||
|     case BIO_CTRL_PUSH: |     case BIO_CTRL_PUSH: | ||||||
|         if ((next != NULL) && (next != ssl->rbio)) { |         if ((next != NULL) && (next != ssl->rbio)) { | ||||||
|  |             /*
 | ||||||
|  |              * We are going to pass ownership of next to the SSL object...but | ||||||
|  |              * we don't own a reference to pass yet - so up ref | ||||||
|  |              */ | ||||||
|  |             BIO_up_ref(next); | ||||||
|             SSL_set_bio(ssl, next, next); |             SSL_set_bio(ssl, next, next); | ||||||
|             BIO_up_ref(b); |  | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
|     case BIO_CTRL_POP: |     case BIO_CTRL_POP: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue