From: Ivo Raisr Date: Thu, 19 Nov 2015 09:34:29 +0000 (+0000) Subject: Solaris syscall: Fix pset(getloadavg). X-Git-Tag: svn/VALGRIND_3_12_0~291 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d5266b32f7467c889d9037a3bf8884931c796147;p=thirdparty%2Fvalgrind.git Solaris syscall: Fix pset(getloadavg). The buffer holds integers, not doubles. n-i-bz git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15732 --- diff --git a/coregrind/m_syswrap/syswrap-solaris.c b/coregrind/m_syswrap/syswrap-solaris.c index 4e2662c6c6..175d0f65a7 100644 --- a/coregrind/m_syswrap/syswrap-solaris.c +++ b/coregrind/m_syswrap/syswrap-solaris.c @@ -9246,9 +9246,9 @@ PRE(sys_pset) int nelem); */ PRINT("sys_pset ( %ld, %ld, %#lx, %ld )", SARG1, SARG2, ARG3, SARG4); PRE_REG_READ4(long, SC2("pset", "getloadavg"), int, subcode, - vki_psetid_t, pset, double, loadavg[], int, nelem); + vki_psetid_t, pset, int *, buf, int, nelem); if (ARG3 != 0) - PRE_MEM_WRITE("pset(loadavg)", ARG3, SARG4 * sizeof(double)); + PRE_MEM_WRITE("pset(buf)", ARG3, SARG4 * sizeof(int)); break; case VKI_PSET_LIST: /* Libc: int pset_list(psetid_t *psetlist, uint_t *numpsets); */ @@ -9341,7 +9341,7 @@ POST(sys_pset) break; case VKI_PSET_GETLOADAVG: if (ARG3 != 0) - POST_MEM_WRITE(ARG3, MIN(SARG4, VKI_LOADAVG_NSTATS) * sizeof(double)); + POST_MEM_WRITE(ARG3, MIN(SARG4, VKI_LOADAVG_NSTATS) * sizeof(int)); break; case VKI_PSET_LIST: if (ARG3 != 0) diff --git a/memcheck/tests/solaris/scalar.stderr.exp b/memcheck/tests/solaris/scalar.stderr.exp index 06e83e963f..1593cb559f 100644 --- a/memcheck/tests/solaris/scalar.stderr.exp +++ b/memcheck/tests/solaris/scalar.stderr.exp @@ -4338,13 +4338,13 @@ Syscall param pset_getloadavg(subcode) contains uninitialised byte(s) Syscall param pset_getloadavg(pset) contains uninitialised byte(s) ... -Syscall param pset_getloadavg(loadavg[]) contains uninitialised byte(s) +Syscall param pset_getloadavg(buf) contains uninitialised byte(s) ... Syscall param pset_getloadavg(nelem) contains uninitialised byte(s) ... -Syscall param pset(loadavg) points to unaddressable byte(s) +Syscall param pset(buf) points to unaddressable byte(s) ... Address 0x........ is not stack'd, malloc'd or (recently) free'd