mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
Add support on Darwin for fstat_extended() and fstat64_extended(). Partly
addresses bug 198624. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10458
This commit is contained in:
parent
705bcf4d73
commit
ef7925e7bc
@ -1875,7 +1875,6 @@ PRE(stat_extended)
|
||||
if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
|
||||
PRE_MEM_WRITE("stat_extended(fsacl)", ARG3, *(vki_size_t *)ARG4 );
|
||||
PRE_MEM_READ( "stat_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
PRE_MEM_WRITE( "stat_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
}
|
||||
POST(stat_extended)
|
||||
{
|
||||
@ -1897,7 +1896,6 @@ PRE(lstat_extended)
|
||||
if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
|
||||
PRE_MEM_WRITE("lstat_extended(fsacl)", ARG3, *(vki_size_t *)ARG4 );
|
||||
PRE_MEM_READ( "lstat_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
PRE_MEM_WRITE( "lstat_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
}
|
||||
POST(lstat_extended)
|
||||
{
|
||||
@ -1908,6 +1906,26 @@ POST(lstat_extended)
|
||||
}
|
||||
|
||||
|
||||
PRE(fstat_extended)
|
||||
{
|
||||
PRINT("fstat_extended( %ld, %#lx, %#lx, %#lx )",
|
||||
ARG1, ARG2, ARG3, ARG4);
|
||||
PRE_REG_READ4(int, "fstat_extended", int, fd, struct stat *, buf,
|
||||
void *, fsacl, vki_size_t *, fsacl_size);
|
||||
PRE_MEM_WRITE( "fstat_extended(buf)", ARG2, sizeof(struct vki_stat) );
|
||||
if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
|
||||
PRE_MEM_WRITE("fstat_extended(fsacl)", ARG3, *(vki_size_t *)ARG4 );
|
||||
PRE_MEM_READ( "fstat_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
}
|
||||
POST(fstat_extended)
|
||||
{
|
||||
POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) );
|
||||
if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
|
||||
POST_MEM_WRITE( ARG3, *(vki_size_t *)ARG4 );
|
||||
POST_MEM_WRITE( ARG4, sizeof(vki_size_t) );
|
||||
}
|
||||
|
||||
|
||||
PRE(stat64_extended)
|
||||
{
|
||||
PRINT("stat64_extended( %#lx(%s), %#lx, %#lx, %#lx )",
|
||||
@ -1919,7 +1937,6 @@ PRE(stat64_extended)
|
||||
if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
|
||||
PRE_MEM_WRITE("stat64_extended(fsacl)", ARG3, *(vki_size_t *)ARG4 );
|
||||
PRE_MEM_READ( "stat64_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
PRE_MEM_WRITE( "stat64_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
}
|
||||
POST(stat64_extended)
|
||||
{
|
||||
@ -1941,7 +1958,6 @@ PRE(lstat64_extended)
|
||||
if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
|
||||
PRE_MEM_WRITE( "lstat64_extended(fsacl)", ARG3, *(vki_size_t *)ARG4 );
|
||||
PRE_MEM_READ( "lstat64_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
PRE_MEM_WRITE( "lstat64_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
}
|
||||
POST(lstat64_extended)
|
||||
{
|
||||
@ -1952,6 +1968,26 @@ POST(lstat64_extended)
|
||||
}
|
||||
|
||||
|
||||
PRE(fstat64_extended)
|
||||
{
|
||||
PRINT("fstat64_extended( %ld, %#lx, %#lx, %#lx )",
|
||||
ARG1, ARG2, ARG3, ARG4);
|
||||
PRE_REG_READ4(int, "fstat64_extended", int, fd, struct stat64 *, buf,
|
||||
void *, fsacl, vki_size_t *, fsacl_size);
|
||||
PRE_MEM_WRITE( "fstat64_extended(buf)", ARG2, sizeof(struct vki_stat64) );
|
||||
if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
|
||||
PRE_MEM_WRITE("fstat64_extended(fsacl)", ARG3, *(vki_size_t *)ARG4 );
|
||||
PRE_MEM_READ( "fstat64_extended(fsacl_size)", ARG4, sizeof(vki_size_t) );
|
||||
}
|
||||
POST(fstat64_extended)
|
||||
{
|
||||
POST_MEM_WRITE( ARG2, sizeof(struct vki_stat64) );
|
||||
if (ML_(safe_to_deref)( (void*)ARG4, sizeof(vki_size_t) ))
|
||||
POST_MEM_WRITE( ARG3, *(vki_size_t *)ARG4 );
|
||||
POST_MEM_WRITE( ARG4, sizeof(vki_size_t) );
|
||||
}
|
||||
|
||||
|
||||
PRE(fchmod_extended)
|
||||
{
|
||||
/* DDD: Note: this is not really correct. Handling of
|
||||
@ -7323,7 +7359,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
// _____(__NR_umask_extended),
|
||||
MACXY(__NR_stat_extended, stat_extended),
|
||||
MACXY(__NR_lstat_extended, lstat_extended), // 280
|
||||
// _____(__NR_fstat_extended),
|
||||
MACXY(__NR_fstat_extended, fstat_extended),
|
||||
MACX_(__NR_chmod_extended, chmod_extended),
|
||||
MACX_(__NR_fchmod_extended, fchmod_extended),
|
||||
// _____(__NR_access_extended),
|
||||
@ -7385,7 +7421,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
MACXY(__NR_lstat64, lstat64), // 340
|
||||
MACXY(__NR_stat64_extended, stat64_extended),
|
||||
MACXY(__NR_lstat64_extended, lstat64_extended),
|
||||
// _____(__NR_fstat64_extended),
|
||||
MACXY(__NR_fstat64_extended, fstat64_extended),
|
||||
MACXY(__NR_getdirentries64, getdirentries64),
|
||||
MACXY(__NR_statfs64, statfs64),
|
||||
MACXY(__NR_fstatfs64, fstatfs64),
|
||||
|
||||
@ -498,9 +498,14 @@ int main(void)
|
||||
// Go again to get a complaint about where the 3rd arg points; it
|
||||
// requires the 4th arg to point to a valid value.
|
||||
SY(__NR_lstat_extended, 0, 0, 0, &one); FAIL;
|
||||
|
||||
GO(__NR_fstat_extended, 280, "4s 3m");
|
||||
SY(__NR_fstat_extended, x0, x0, x0, x0); FAIL;
|
||||
// Go again to get a complaint about where the 3rd arg points; it
|
||||
// requires the 4th arg to point to a valid value.
|
||||
SY(__NR_fstat_extended, 0, 0, 0, &one); FAIL;
|
||||
}
|
||||
|
||||
// __NR_fstat_extended 281
|
||||
// __NR_chmod_extended 282
|
||||
// __NR_fchmod_extended 283
|
||||
// __NR_access_extended 284
|
||||
@ -599,6 +604,12 @@ int main(void)
|
||||
// Go again to get a complaint about where the 3rd arg points; it
|
||||
// requires the 4th arg to point to a valid value.
|
||||
SY(__NR_lstat64_extended, 0, 0, 0, &one); FAIL;
|
||||
|
||||
GO(__NR_fstat64_extended, 342, "4s 3m");
|
||||
SY(__NR_fstat64_extended, x0, x0, x0, x0); FAIL;
|
||||
// Go again to get a complaint about where the 3rd arg points; it
|
||||
// requires the 4th arg to point to a valid value.
|
||||
SY(__NR_fstat64_extended, 0, 0, 0, &one); FAIL;
|
||||
}
|
||||
|
||||
// __NR_fstat64_extended 343
|
||||
|
||||
@ -682,6 +682,33 @@ Syscall param lstat_extended(fsacl) points to unaddressable byte(s)
|
||||
...
|
||||
Address 0x........ is not stack'd, malloc'd or (recently) free'd
|
||||
-----------------------------------------------------
|
||||
x2000119(280): __NR_fstat_extended 4s 3m
|
||||
-----------------------------------------------------
|
||||
|
||||
Syscall param fstat_extended(fd) contains uninitialised byte(s)
|
||||
...
|
||||
|
||||
Syscall param fstat_extended(buf) contains uninitialised byte(s)
|
||||
...
|
||||
|
||||
Syscall param fstat_extended(fsacl) contains uninitialised byte(s)
|
||||
...
|
||||
|
||||
Syscall param fstat_extended(fsacl_size) contains uninitialised byte(s)
|
||||
...
|
||||
|
||||
Syscall param fstat_extended(buf) points to unaddressable byte(s)
|
||||
...
|
||||
Address 0x........ is not stack'd, malloc'd or (recently) free'd
|
||||
|
||||
Syscall param fstat_extended(fsacl_size) points to unaddressable byte(s)
|
||||
...
|
||||
Address 0x........ is not stack'd, malloc'd or (recently) free'd
|
||||
|
||||
Syscall param fstat_extended(fsacl) points to unaddressable byte(s)
|
||||
...
|
||||
Address 0x........ is not stack'd, malloc'd or (recently) free'd
|
||||
-----------------------------------------------------
|
||||
(296): old load_shared_file
|
||||
-----------------------------------------------------
|
||||
-----------------------------------------------------
|
||||
@ -816,6 +843,33 @@ Syscall param lstat64_extended(fsacl) points to unaddressable byte(s)
|
||||
...
|
||||
Address 0x........ is not stack'd, malloc'd or (recently) free'd
|
||||
-----------------------------------------------------
|
||||
x2000157(342):__NR_fstat64_extended 4s 3m
|
||||
-----------------------------------------------------
|
||||
|
||||
Syscall param fstat64_extended(fd) contains uninitialised byte(s)
|
||||
...
|
||||
|
||||
Syscall param fstat64_extended(buf) contains uninitialised byte(s)
|
||||
...
|
||||
|
||||
Syscall param fstat64_extended(fsacl) contains uninitialised byte(s)
|
||||
...
|
||||
|
||||
Syscall param fstat64_extended(fsacl_size) contains uninitialised byte(s)
|
||||
...
|
||||
|
||||
Syscall param fstat64_extended(buf) points to unaddressable byte(s)
|
||||
...
|
||||
Address 0x........ is not stack'd, malloc'd or (recently) free'd
|
||||
|
||||
Syscall param fstat64_extended(fsacl_size) points to unaddressable byte(s)
|
||||
...
|
||||
Address 0x........ is not stack'd, malloc'd or (recently) free'd
|
||||
|
||||
Syscall param fstat64_extended(fsacl) points to unaddressable byte(s)
|
||||
...
|
||||
Address 0x........ is not stack'd, malloc'd or (recently) free'd
|
||||
-----------------------------------------------------
|
||||
(369-379): unused
|
||||
-----------------------------------------------------
|
||||
-----------------------------------------------------
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user