Commit 381a9b6e authored by Cody P Schafer's avatar Cody P Schafer
Browse files

sys (and bn): make CRYPTO_free() take a *mut c_void insead of a *const c_char

CRYPTO_free() ends up being used for a variety of types of data, not just
c_char. And it essentially takes full ownership of the type, making
*mut appropriate.

With this change it also more closely (exactly) matches the C defintion:
	void CRYPTO_free(void *ptr);
parent b7c88101
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -295,7 +295,7 @@ extern "C" {
                                                           n: c_int,
                                                           file: *const c_char,
                                                           line: c_int));
    pub fn CRYPTO_free(buf: *const c_char);
    pub fn CRYPTO_free(buf: *mut c_void);
    pub fn CRYPTO_memcmp(a: *const c_void, b: *const c_void,
                         len: size_t) -> c_int;

+2 −2
Original line number Diff line number Diff line
use libc::{c_int, c_ulong};
use libc::{c_int, c_ulong, c_void};
use std::{fmt, ptr};
use std::c_str::CString;

@@ -348,7 +348,7 @@ impl BigNum {
            assert!(!buf.is_null());
            let c_str = CString::new(buf, false);
            let str = c_str.as_str().unwrap().to_string();
            ffi::CRYPTO_free(buf);
            ffi::CRYPTO_free(buf as *mut c_void);
            str
        }
    }