@@ -213,7 +213,7 @@ def _compile_fs_jail(self, fs) -> FilesystemPolicy:
213213
214214 def _dirfd_getter_from_reg (self , reg : int ) -> DirFDGetter :
215215 def getter (debugger : Debugger ) -> int :
216- return getattr ( debugger , ' uarg%d' % reg )
216+ return debugger . uarg [ reg ]
217217
218218 return getter
219219
@@ -222,7 +222,7 @@ def _dirfd_getter_cwd(self, debugger: Debugger) -> int:
222222
223223 def _fs_jail_getter_from_open_flags_reg (self , reg : int ) -> FSJailGetter :
224224 def getter (debugger : Debugger ) -> FilesystemPolicy :
225- open_flags = getattr ( debugger , ' uarg%d' % reg )
225+ open_flags = debugger . uarg [ reg ]
226226 for flag in open_write_flags :
227227 # Strict equality is necessary here, since e.g. O_TMPFILE has multiple bits set,
228228 # and O_DIRECTORY & O_TMPFILE > 0.
@@ -282,7 +282,7 @@ def check(debugger: Debugger) -> None:
282282 # We already allowed this one way or another, don't check again.
283283 return
284284
285- dirfd = getattr ( debugger , ' uarg%d' % dir_reg )
285+ dirfd = debugger . uarg [ dir_reg ]
286286 full_path = self .get_full_path_unnormalized (debugger , rel_file , dirfd = dirfd )
287287 self ._access_check (debugger , full_path , self .read_fs_jail )
288288
@@ -299,9 +299,8 @@ def check(debugger: Debugger) -> None:
299299 return check
300300
301301 def get_rel_file (self , debugger : Debugger , * , reg : int ) -> str :
302- ptr = getattr (debugger , 'uarg%d' % reg )
303302 try :
304- file = debugger .readstr (ptr )
303+ file = debugger .readstr (debugger . uarg [ reg ] )
305304 except MaxLengthExceeded as e :
306305 raise DeniedSyscall (ACCESS_ENAMETOOLONG , f'Overly long path: { e .args [0 ]} ' )
307306 except UnicodeDecodeError as e :
0 commit comments