]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix linkat, renameat and symlinkat wrappers to look at the arguments
authorTom Hughes <tom@compton.nu>
Mon, 8 May 2006 11:19:47 +0000 (11:19 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 8 May 2006 11:19:47 +0000 (11:19 +0000)
correctly. Fixes bug #126938.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5884

coregrind/m_syswrap/syswrap-linux.c

index bc9864823a64b563b118042b6a30a4158d3bbf4d..6f4098fa3188e2b4b704b6956e99c6b8fa006bc8 100644 (file)
@@ -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 );
 }