# HG changeset patch # User holycleugh # Date 1546159241 18000 # Node ID c16564971c0516a10c584a472b05bb99800d33b8 # Parent 81a9f0479e508c0a541de61bad49e33232e64288 conv: fix segfault when decoding response of PAM_TEXT_INFO et al. diff -r 81a9f0479e50 -r c16564971c05 pam/src/conv.rs --- a/pam/src/conv.rs Sun Dec 30 03:40:04 2018 -0500 +++ b/pam/src/conv.rs Sun Dec 30 03:40:41 2018 -0500 @@ -64,10 +64,12 @@ let ret = (self.conv)(1, &&msg, &mut resp_ptr, self.appdata_ptr); if PamResultCode::PAM_SUCCESS == ret { - if resp_ptr.is_null() { + // PamResponse.resp is null for styles that don't return user input like PAM_TEXT_INFO + let response = unsafe { (*resp_ptr).resp }; + if response.is_null() { Ok(None) } else { - let bytes = unsafe { CStr::from_ptr((*resp_ptr).resp).to_bytes() }; + let bytes = unsafe { CStr::from_ptr(response).to_bytes() }; Ok(String::from_utf8(bytes.to_vec()).ok()) } } else {