Merge pull request #261 from jedisct1/try_ssl_null

Use try_ssl_null!() when relevant
This commit is contained in:
Steven Fackler 2015-09-16 01:13:24 -04:00
commit 1c3f04138f
2 changed files with 7 additions and 28 deletions

View File

@ -11,10 +11,7 @@ pub struct DH(*mut ffi::DH);
impl DH { impl DH {
pub fn from_params(p: BigNum, g: BigNum, q: BigNum) -> Result<DH, SslError> { pub fn from_params(p: BigNum, g: BigNum, q: BigNum) -> Result<DH, SslError> {
let dh = unsafe { ffi::DH_new_from_params(p.raw(), g.raw(), q.raw()) }; let dh = try_ssl_null!(unsafe { ffi::DH_new_from_params(p.raw(), g.raw(), q.raw()) });
if dh == ptr::null_mut() {
return Err(SslError::get());
}
mem::forget(p); mem::forget(p);
mem::forget(g); mem::forget(g);
mem::forget(q); mem::forget(q);
@ -33,28 +30,19 @@ impl DH {
#[cfg(feature = "rfc5114")] #[cfg(feature = "rfc5114")]
pub fn get_1024_160() -> Result<DH, SslError> { pub fn get_1024_160() -> Result<DH, SslError> {
let dh = unsafe { ffi::DH_get_1024_160() }; let dh = try_ssl_null!(unsafe { ffi::DH_get_1024_160() });
if dh == ptr::null_mut() {
return Err(SslError::get());
}
Ok(DH(dh)) Ok(DH(dh))
} }
#[cfg(feature = "rfc5114")] #[cfg(feature = "rfc5114")]
pub fn get_2048_224() -> Result<DH, SslError> { pub fn get_2048_224() -> Result<DH, SslError> {
let dh = unsafe { ffi::DH_get_2048_224() }; let dh = try_ssl_null!(unsafe { ffi::DH_get_2048_224() });
if dh == ptr::null_mut() {
return Err(SslError::get());
}
Ok(DH(dh)) Ok(DH(dh))
} }
#[cfg(feature = "rfc5114")] #[cfg(feature = "rfc5114")]
pub fn get_2048_256() -> Result<DH, SslError> { pub fn get_2048_256() -> Result<DH, SslError> {
let dh = unsafe { ffi::DH_get_2048_256() }; let dh = try_ssl_null!(unsafe { ffi::DH_get_2048_256() });
if dh == ptr::null_mut() {
return Err(SslError::get());
}
Ok(DH(dh)) Ok(DH(dh))
} }

View File

@ -432,10 +432,7 @@ impl SslContext {
pub fn new(method: SslMethod) -> Result<SslContext, SslError> { pub fn new(method: SslMethod) -> Result<SslContext, SslError> {
init(); init();
let ctx = unsafe { ffi::SSL_CTX_new(method.to_raw()) }; let ctx = try_ssl_null!(unsafe { ffi::SSL_CTX_new(method.to_raw()) });
if ctx == ptr::null_mut() {
return Err(SslError::get());
}
let ctx = SslContext { ctx: ctx }; let ctx = SslContext { ctx: ctx };
@ -690,10 +687,7 @@ impl Drop for Ssl {
impl Ssl { impl Ssl {
pub fn new(ctx: &SslContext) -> Result<Ssl, SslError> { pub fn new(ctx: &SslContext) -> Result<Ssl, SslError> {
let ssl = unsafe { ffi::SSL_new(ctx.ctx) }; let ssl = try_ssl_null!(unsafe { ffi::SSL_new(ctx.ctx) });
if ssl == ptr::null_mut() {
return Err(SslError::get());
}
let ssl = Ssl { ssl: ssl }; let ssl = Ssl { ssl: ssl };
Ok(ssl) Ok(ssl)
} }
@ -1019,10 +1013,7 @@ impl DirectStream<net::TcpStream> {
impl<S> DirectStream<S> { impl<S> DirectStream<S> {
fn new_base(ssl: Ssl, stream: S, sock: c_int) -> Result<DirectStream<S>, SslError> { fn new_base(ssl: Ssl, stream: S, sock: c_int) -> Result<DirectStream<S>, SslError> {
unsafe { unsafe {
let bio = ffi::BIO_new_socket(sock, 0); let bio = try_ssl_null!(ffi::BIO_new_socket(sock, 0));
if bio == ptr::null_mut() {
return Err(SslError::get());
}
ffi::SSL_set_bio(ssl.ssl, bio, bio); ffi::SSL_set_bio(ssl.ssl, bio, bio);
} }