From: Julian Seward Date: Thu, 25 Jul 2002 01:41:01 +0000 (+0000) Subject: Implement __NR_getxattr. X-Git-Tag: svn/VALGRIND_1_0_1~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c88159307ce8294b152262d4bcfc712e5a4a0a24;p=thirdparty%2Fvalgrind.git Implement __NR_getxattr. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@530 --- diff --git a/vg_syscall_mem.c b/vg_syscall_mem.c index 6e91d33278..580f6af350 100644 --- a/vg_syscall_mem.c +++ b/vg_syscall_mem.c @@ -416,6 +416,24 @@ void VG_(perform_assumed_nonblocking_syscall) ( ThreadId tid ) # endif /* !!!!!!!!!! New, untested syscalls !!!!!!!!!!!!!!!!!!!!! */ + +# if defined(__NR_getxattr) + case __NR_getxattr: /* syscall 229 */ + /* ssize_t getxattr (const char *path, const char* name, + void* value, size_t size); */ + if (VG_(clo_trace_syscalls)) + VG_(printf)("getxattr ( %p, %p, %p, %d )\n", + arg1,arg2,arg3, arg4); + must_be_readable_asciiz( tst, "getxattr(path)", arg1 ); + must_be_readable_asciiz( tst, "getxattr(name)", arg2 ); + must_be_writable( tst, "getxattr(value)", arg3, arg4 ); + KERNEL_DO_SYSCALL(tid,res); + if (!VG_(is_kerror)(res) && res > 0 + && arg3 != (Addr)NULL) { + make_readable( arg3, res ); + } + break; +# endif # if defined(__NR_quotactl) case __NR_quotactl: /* syscall 131 */