File tree Expand file tree Collapse file tree 1 file changed +8
-3
lines changed
compiler/rustc_session/src Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -85,15 +85,20 @@ fn current_dll_path() -> Result<PathBuf, String> {
8585 #[ cfg( target_os = "aix" ) ]
8686 unsafe {
8787 let addr = current_dll_path as u64 ;
88- let mut buffer = vec ! [ 0i8 ; 4096 ] ;
88+ let mut buffer = vec ! [ std :: mem :: zeroed :: <libc :: ld_info> ( ) ; 64 ] ;
8989 loop {
90- if libc:: loadquery ( libc:: L_GETINFO , buffer. as_mut_ptr ( ) , buffer. len ( ) as u32 ) >= 0 {
90+ if libc:: loadquery (
91+ libc:: L_GETINFO ,
92+ buffer. as_mut_ptr ( ) as * mut i8 ,
93+ ( std:: mem:: size_of :: < libc:: ld_info > ( ) * buffer. len ( ) ) as u32 ,
94+ ) >= 0
95+ {
9196 break ;
9297 } else {
9398 if std:: io:: Error :: last_os_error ( ) . raw_os_error ( ) . unwrap ( ) != libc:: ENOMEM {
9499 return Err ( "loadquery failed" . into ( ) ) ;
95100 }
96- buffer. resize ( buffer. len ( ) * 2 , 0i8 ) ;
101+ buffer. resize ( buffer. len ( ) * 2 , std :: mem :: zeroed :: < libc :: ld_info > ( ) ) ;
97102 }
98103 }
99104 let mut current = buffer. as_mut_ptr ( ) as * mut libc:: ld_info ;
You can’t perform that action at this time.
0 commit comments