From: Tom Hughes Date: Mon, 8 May 2006 11:19:47 +0000 (+0000) Subject: Fix linkat, renameat and symlinkat wrappers to look at the arguments X-Git-Tag: svn/VALGRIND_3_2_0~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=490abde20665aca46f087cb041e455b950e4e7db;p=thirdparty%2Fvalgrind.git Fix linkat, renameat and symlinkat wrappers to look at the arguments correctly. Fixes bug #126938. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5884 --- diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index bc9864823a..6f4098fa31 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -2397,30 +2397,33 @@ PRE(sys_unlinkat) PRE(sys_renameat) { - PRINT("sys_renameat ( %d, %p(%s), %p(%s) )", ARG1,ARG2,ARG2,ARG3,ARG3); - PRE_REG_READ3(long, "renameat", - int, dfd, const char *, oldpath, const char *, newpath); + PRINT("sys_renameat ( %d, %p(%s), %d, %p(%s) )", ARG1,ARG2,ARG2,ARG3,ARG4,ARG4); + PRE_REG_READ4(long, "renameat", + int, olddfd, const char *, oldpath, + int, newdfd, const char *, newpath); PRE_MEM_RASCIIZ( "renameat(oldpath)", ARG2 ); - PRE_MEM_RASCIIZ( "renameat(newpath)", ARG3 ); + PRE_MEM_RASCIIZ( "renameat(newpath)", ARG4 ); } PRE(sys_linkat) { *flags |= SfMayBlock; - PRINT("sys_linkat ( %d, %p(%s), %p(%s) )", ARG1,ARG2,ARG2,ARG3,ARG3); - PRE_REG_READ3(long, "linkat", - int, dfd, const char *, oldpath, const char *, newpath); + PRINT("sys_linkat ( %d, %p(%s), %d, %p(%s), %d )",ARG1,ARG2,ARG2,ARG3,ARG4,ARG4,ARG5); + PRE_REG_READ5(long, "linkat", + int, olddfd, const char *, oldpath, + int, newdfd, const char *, newpath, + int, flags); PRE_MEM_RASCIIZ( "linkat(oldpath)", ARG2); - PRE_MEM_RASCIIZ( "linkat(newpath)", ARG3); + PRE_MEM_RASCIIZ( "linkat(newpath)", ARG4); } PRE(sys_symlinkat) { *flags |= SfMayBlock; - PRINT("sys_symlinkat ( %d, %p(%s), %p(%s) )",ARG1,ARG2,ARG2,ARG3,ARG3); + PRINT("sys_symlinkat ( %p(%s), %d, %p(%s) )",ARG1,ARG1,ARG2,ARG3,ARG3); PRE_REG_READ3(long, "symlinkat", - int, dfd, const char *, oldpath, const char *, newpath); - PRE_MEM_RASCIIZ( "symlinkat(oldpath)", ARG2 ); + const char *, oldpath, int, newdfd, const char *, newpath); + PRE_MEM_RASCIIZ( "symlinkat(oldpath)", ARG1 ); PRE_MEM_RASCIIZ( "symlinkat(newpath)", ARG3 ); }