From patchwork Thu Feb 16 14:38:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 94082 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp2554725qgi; Thu, 16 Feb 2017 07:25:55 -0800 (PST) X-Received: by 10.200.49.45 with SMTP id g42mr2906249qtb.9.1487258755804; Thu, 16 Feb 2017 07:25:55 -0800 (PST) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id b128si5436370qkd.246.2017.02.16.07.25.55 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 16 Feb 2017 07:25:55 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org Received: from localhost ([::1]:47314 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceNwR-0001DI-8x for patch@linaro.org; Thu, 16 Feb 2017 10:25:55 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53695) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceNCe-0000Zr-1K for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ceNCZ-0002IZ-1Q for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:36 -0500 Received: from mout.kundenserver.de ([217.72.192.74]:53232) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ceNCY-0002Hh-NC for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:30 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue101 [212.227.15.183]) with ESMTPSA (Nemesis) id 0Lx70L-1cKAaY24zp-016jVD; Thu, 16 Feb 2017 15:38:19 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Thu, 16 Feb 2017 15:38:03 +0100 Message-Id: <20170216143816.2384-2-laurent@vivier.eu> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170216143816.2384-1-laurent@vivier.eu> References: <20170216143816.2384-1-laurent@vivier.eu> X-Provags-ID: V03:K0:DvI3rnVWIYJMG2ljGWnwaIskj8faEBUr8ISRiL1JM7Rp+4xSZrU N3FmqyTHjfC2rhJaPlDIA5BjcH+ccdI0UYiS02uoUAA1Kfp4iSL23NWLVyUbz+arxVZGt4e 24NTIVw2XpwPWO6nzt+BVPlQP8sBXxmGoYKNpWbIpFPGoy29eG9UCU3BsVo8Jc/7+a7Vzg5 ecQSuw4H3So701WQcsDTg== X-UI-Out-Filterresults: notjunk:1; V01:K0:+0z4f2K16fg=:/H5tzZ1HaeNYdnVQFupeY0 CbGfDV3OzmIQZ+RYPXIPS9QLd7mXCjrwiEQ4jyfH4R7fB/XOUxVA2BLNSvVsK9j49Y4yaxUb0 t5VnKX5xLElsNF+FkuO7coK11r6idWWSl9bkKRx7Zr+BkRNQRQFHkC0xoqhvis24nDDfQ6Yui jKKHDK2UWzwPv2SRY1a0KyZyJnGmusTPp4C75gM+mXDlXwRygK/Hhiy3eaw3yBCL/qjA7FEa8 1GmqeHqN4nEQ6RTu691apVzuFjE2oMrTlQwrT5jBsYvKSs7tJ8XfCHLSf3mxdsecqM7EdCkYS lEIi7st2EvDUwA+hB/Gg8Vwrem3G1xH1FFPAzXfo1V4q6BP5SSyOejkeP8VtYRXgJ/tfxd1iZ 4Pk+knlNsJPrh8Yj1efeS2zt89LAhdFckf/KqYB3ss8T40GLrVz5W6Z10wFa4FrLskBl3t95k MvZzxza9noLmri4cf5R+Mp70Esdob8YLHJfaLvYASLDVYHH2/Q34aKWiLlx9+/dc5JaGnShx9 UctlakxEDGfBC3syuQ1YVP8myUSaTB8+rjPO5Ejt65u6RdZQhjPTJomoC4vi1lbRa5URcp34B CGuFY4KtMzj4fV6tUrn5I7g4czma+BhfKecczragC3mpgA5g2i8QI+INcJjZA0FQry95bo5J1 xrOGmUr0YxzdGrzx1Gi7JnljR5yKHs6YhE98RVBpArlEk1kOVa/0n8yoY59YvDgDrGkE= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.72.192.74 Subject: [Qemu-devel] [PULL v2 01/14] linux-user: remove ifdef __USER_MISC X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Riku Voipio , Riku Voipio Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Riku Voipio This preprocessor macro isn't set anywhere. Remove the check so -strace can show these options. Signed-off-by: Riku Voipio --- linux-user/strace.c | 2 -- 1 file changed, 2 deletions(-) -- 2.9.3 diff --git a/linux-user/strace.c b/linux-user/strace.c index 489dbc9..8fb1b6e 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -90,10 +90,8 @@ if( cmd == val ) { \ output_cmd( IPC_STAT ); output_cmd( IPC_INFO ); /* msgctl() commands */ - #ifdef __USER_MISC output_cmd( MSG_STAT ); output_cmd( MSG_INFO ); - #endif /* shmctl() commands */ output_cmd( SHM_LOCK ); output_cmd( SHM_UNLOCK ); From patchwork Thu Feb 16 14:38:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 94084 Delivered-To: patch@linaro.org Received: by 10.182.3.34 with SMTP id 2csp2567845obz; Thu, 16 Feb 2017 07:57:18 -0800 (PST) X-Received: by 10.200.55.115 with SMTP id p48mr2584224qtb.209.1487260638623; Thu, 16 Feb 2017 07:57:18 -0800 (PST) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id y38si5497789qtb.249.2017.02.16.07.57.18 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 16 Feb 2017 07:57:18 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org Received: from localhost ([::1]:47495 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceOQo-0000cX-40 for patch@linaro.org; Thu, 16 Feb 2017 10:57:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53841) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceNCo-0000kj-As for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ceNCl-0002Nx-AU for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:46 -0500 Received: from mout.kundenserver.de ([217.72.192.75]:64170) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ceNCk-0002N9-W9 for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:43 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue101 [212.227.15.183]) with ESMTPSA (Nemesis) id 0LyDzx-1cGsnp2fI5-015dZn; Thu, 16 Feb 2017 15:38:20 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Thu, 16 Feb 2017 15:38:04 +0100 Message-Id: <20170216143816.2384-3-laurent@vivier.eu> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170216143816.2384-1-laurent@vivier.eu> References: <20170216143816.2384-1-laurent@vivier.eu> X-Provags-ID: V03:K0:upEU5jzjDPRuItT8CPAejnMFj1t4cFOSHdnUfru8H81KV5/+v/V HJZaiL1a/sfJgldjn3immtav7bPTHZNuv2hPceGPNuXwcO8qohHvBc/1GReWPtd7An4KghK 6UAv2E6cVyt9Nj9OJvQTIjjlmOJjXUJ2HJNfhiF5CSh8z/C5XF3kRevsFaTMuURQFUOrRf9 YtU4z1JWtU4w1iRw+z2nA== X-UI-Out-Filterresults: notjunk:1; V01:K0:oxIPIDtUdtE=:nnWi/n4/8QnnxRjpaKm56/ JpeA6xcfSGBwQynUNtHL86hOOvbXrd14MVe4q7u3psQ4Lo/FTxlCtxB4imZBFphmGgyBLZ3oc KUas/7lGnWSRpygp6DhrtW67HdbMIcTZl8ogACQcuGORZkLugN60cfIv/XbvkOXWZuPWCp2HJ TfVDZTzcaXw0JHaMZbO6pALg1XvIAT4Gq5XO3yF1UPzHaCwfW2wRpDVfPhYtFhROa54x+IaPF kGefB6FI8RlIu7be5l8lxPoRcL0jjJu8eo094N+MfFDERn/AUB/idk11owIfF+Nx2Y1b57Wpv DUnLz3rAxTC34HR27Az1qzReAo4jD/I3ncKIIEnWD/buEkb4ZqBgkxUROmkiHR2U0zZRe3rMO qkC3PulqREBUBZER+dvxKxUGjRrOroYFDbeE3HMwfkkvifTqpY4hQA5AgVTSyai+XixW7yhv7 qNVnm3ebrrLGy98qkiSTw34yWz3Bz2xXiI0TW+a0/1XRKMSpHB9jqKmyUngvFbrPkYXcFvB3R G0vGFGiwHi9mOm1Dn+TwZ5XwDoZrImgYgYNqGCuxQEqFRfj4TlcCjcXrF3xEQTTH+KTcdj1LZ aYk3w2QyXalPTmdYoyjhq+uNnjx2uG9PAGmjuu4chy31Ki4tPVBJ1P35+iaTvNRwq1OTU/vdZ QR6r0YlWCkWyAiliO3yIMQFS+hWpTP7nAZFDoUQohr72LNl4ZxWBQIgqTVoJw5L1LsUU= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.72.192.75 Subject: [Qemu-devel] [PULL v2 02/14] linux-user: drop __cygwin__ ifdef X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Riku Voipio , Riku Voipio , Richard Henderson Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Riku Voipio linux-user doesn't work on cygwin anyways. Cc: Richard Henderson Signed-off-by: Riku Voipio --- linux-user/mmap.c | 3 --- 1 file changed, 3 deletions(-) -- 2.9.3 diff --git a/linux-user/mmap.c b/linux-user/mmap.c index 61685bf..4ed9cad 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -193,9 +193,6 @@ static int mmap_frag(abi_ulong real_start, #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64 # define TASK_UNMAPPED_BASE (1ul << 38) -#elif defined(__CYGWIN__) -/* Cygwin doesn't have a whole lot of address space. */ -# define TASK_UNMAPPED_BASE 0x18000000 #else # define TASK_UNMAPPED_BASE 0x40000000 #endif From patchwork Thu Feb 16 14:38:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 94083 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp2556451qgi; Thu, 16 Feb 2017 07:30:11 -0800 (PST) X-Received: by 10.55.209.203 with SMTP id o72mr2489155qkl.281.1487259011199; Thu, 16 Feb 2017 07:30:11 -0800 (PST) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id 36si5464572qtp.26.2017.02.16.07.30.11 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 16 Feb 2017 07:30:11 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org Received: from localhost ([::1]:47337 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceO0Y-0007CF-Hg for patch@linaro.org; Thu, 16 Feb 2017 10:30:10 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53769) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceNCk-0000gn-Cn for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ceNCg-0002LP-B7 for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:42 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:52445) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ceNCg-0002Kr-0O for qemu-devel@nongnu.org; Thu, 16 Feb 2017 09:38:38 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue101 [212.227.15.183]) with ESMTPSA (Nemesis) id 0M2uxS-1cMA7u1P9y-00sf8u; Thu, 16 Feb 2017 15:38:28 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Thu, 16 Feb 2017 15:38:15 +0100 Message-Id: <20170216143816.2384-14-laurent@vivier.eu> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170216143816.2384-1-laurent@vivier.eu> References: <20170216143816.2384-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K0:zFhnxao5bq+YIvzETA9BDxT2vca4sEA5PC7p7rEobu662fNO3gD uaIs+HYs33HHJRwlm4TmxtQugZOh6kUBZg6gUcHd4Ygk2ZZuf+uiRIjG/KLW7V7kYcJ3q+d pSoq0p/gvC8mlozpu65+h+nPDgn0Ev3mabah7Yj88K5jf4QuugACphWhCLwhvGqN0h4bNNg SUNNCvrr22q5CP+Yl/nHg== X-UI-Out-Filterresults: notjunk:1; V01:K0:xCz3WQAaXMU=:2+6uEhfeptmCrCBz3rgAMM TErSWtdM+6ZEjSw6xjksmhbouLvaz7x72rnCqDCGcO3700lsIFD/yBH5U+7qevTgx0mVyHijE oPWrP4kMvMyknfr9uvmAG6SXZGhi6GuyHUIOsGE54n0lFld+XCkhoO+2UXItwgFpXaE2vnM7t MmMcq8LdBhymAPPcCIgqvY7uSltYTWYA5z/0gQDdv0vcrZIydE4krhc4HPqJZDsyRgaZiAkoL BjWGZ87IPZCtdFKH1B9jgSde1nnhj3n3VnQBCXDjr92nzxz04vt8BC6p3dYRyX4KWf/QdvinY FjUrLPn1dt8KogKvswtOoqD4OQ9KcEb2h9WC9PZzL1FL9AttUd1GQ3TIUsQureJz7CUPqDQ5f kLaW8N8HPE4TXFnztRMTD7tnt9N6RjUls8LzKt6jlEGxyGhy6RTeHnT+1a6QkX+Ei6Fd8a0g3 JmRb0RatwKGD/klCOah5LgB2iFtMZTUJVrovpRO9P66w2RvpNd/OlFOfzN318r4cudroZDFhD w5bPWB8k9jQ4pMPHqMEJU4JUMDNYHNYj3jnuxinNPtTVA9/vqD/b4VLArtQP3E4vFfa7+9qd6 HC5DysRVR1qaIx7k4PGeIkTYbknpbFhblQ+ekAVXTp5730/Fa1oRoBIrrpqw37cIF5DTvIx80 I4sy92J/yhxRj8GLJyWdxhORq/3ZB/1wvBcIEXTWLMrrDWxOxakHwCLokLozzdgSYIgb52d/i hc9ND04yzrEGv2MI X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.13 Subject: [Qemu-devel] [PULL v2 13/14] linux-user: Use correct types in load_symbols() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Peter Maydell Coverity doesn't like the code in load_symbols() which assumes it can use 'int' for a variable that might hold an offset into the guest ELF file, because in a 64-bit guest that could overflow. Guest binaries with 2GB sections aren't very likely and this isn't a security issue because we fully trust the guest linux-user binary anyway, but we might as well use the right types, which will placate Coverity. Use uint64_t to hold section sizes, and bail out if the symbol table is too large rather than just overflowing an int. (Coverity issue CID1005776) Signed-off-by: Peter Maydell Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daudé Message-Id: <1486249533-5260-1-git-send-email-peter.maydell@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/elfload.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) -- 2.9.3 diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 8271227..f520d77 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -2262,6 +2262,7 @@ static int symcmp(const void *s0, const void *s1) static void load_symbols(struct elfhdr *hdr, int fd, abi_ulong load_bias) { int i, shnum, nsyms, sym_idx = 0, str_idx = 0; + uint64_t segsz; struct elf_shdr *shdr; char *strings = NULL; struct syminfo *s = NULL; @@ -2293,19 +2294,26 @@ static void load_symbols(struct elfhdr *hdr, int fd, abi_ulong load_bias) goto give_up; } - i = shdr[str_idx].sh_size; - s->disas_strtab = strings = g_try_malloc(i); - if (!strings || pread(fd, strings, i, shdr[str_idx].sh_offset) != i) { + segsz = shdr[str_idx].sh_size; + s->disas_strtab = strings = g_try_malloc(segsz); + if (!strings || + pread(fd, strings, segsz, shdr[str_idx].sh_offset) != segsz) { goto give_up; } - i = shdr[sym_idx].sh_size; - syms = g_try_malloc(i); - if (!syms || pread(fd, syms, i, shdr[sym_idx].sh_offset) != i) { + segsz = shdr[sym_idx].sh_size; + syms = g_try_malloc(segsz); + if (!syms || pread(fd, syms, segsz, shdr[sym_idx].sh_offset) != segsz) { goto give_up; } - nsyms = i / sizeof(struct elf_sym); + if (segsz / sizeof(struct elf_sym) > INT_MAX) { + /* Implausibly large symbol table: give up rather than ploughing + * on with the number of symbols calculation overflowing + */ + goto give_up; + } + nsyms = segsz / sizeof(struct elf_sym); for (i = 0; i < nsyms; ) { bswap_sym(syms + i); /* Throw away entries which we do not need. */