File tree 1 file changed +8
-3
lines changed
compiler/rustc_session/src
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> {
85
85
#[ cfg( target_os = "aix" ) ]
86
86
unsafe {
87
87
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 ] ;
89
89
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
+ {
91
96
break ;
92
97
} else {
93
98
if std:: io:: Error :: last_os_error ( ) . raw_os_error ( ) . unwrap ( ) != libc:: ENOMEM {
94
99
return Err ( "loadquery failed" . into ( ) ) ;
95
100
}
96
- buffer. resize ( buffer. len ( ) * 2 , 0i8 ) ;
101
+ buffer. resize ( buffer. len ( ) * 2 , std :: mem :: zeroed :: < libc :: ld_info > ( ) ) ;
97
102
}
98
103
}
99
104
let mut current = buffer. as_mut_ptr ( ) as * mut libc:: ld_info ;
You can’t perform that action at this time.
0 commit comments