Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934137AbdCVNJl (ORCPT ); Wed, 22 Mar 2017 09:09:41 -0400 Received: from mail-eopbgr50124.outbound.protection.outlook.com ([40.107.5.124]:45025 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S934361AbdCVNHh (ORCPT ); Wed, 22 Mar 2017 09:07:37 -0400 Authentication-Results: infradead.org; dkim=none (message not signed) header.d=none;infradead.org; dmarc=none action=none header.from=nokia.com; From: Tommi Rantala To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Alexander Shishkin CC: , Tommi Rantala Subject: [PATCH 2/6] perf buildid: do not assume that readlink() returns a null terminated string Date: Wed, 22 Mar 2017 15:06:20 +0200 Message-ID: <20170322130624.21881-3-tommi.t.rantala@nokia.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170322130624.21881-1-tommi.t.rantala@nokia.com> References: <20170322130624.21881-1-tommi.t.rantala@nokia.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [131.228.32.186] X-ClientProxiedBy: DB6P191CA0022.EURP191.PROD.OUTLOOK.COM (10.175.236.160) To DB6PR0701MB2358.eurprd07.prod.outlook.com (10.168.75.12) X-MS-Office365-Filtering-Correlation-Id: de8441af-0c53-4fe0-171c-08d47124460f X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:DB6PR0701MB2358; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0701MB2358;3:eDltzTyJcivTGP2BGovpsV9qbaUnHkQAGhcLKXLzTooY9N3PWH9EaK9l1BDcWeoG2j7FNQ2eiqefjgK1yPzGxvgB62a9pHb+c98itsnvWAyzDn8jc+yG6PZo2skzz3/qK6ajD5NEyAXBPkAYrh3z4sdLCi/FsakyIU04L4B2loiluLDs5bJlmbMiDQx3F0DpZRoUar5LWbe3uwNmenptqwGbu1Er6xULYKBy1UxUkewdF9DgC80f+6mVbcluOnFsUjScgchHgtk1nzugyj3u9ZsD70OEm3Bw07OIg+DOCmk=;25:Xm6xTymQng5KIfuIa9flymEc/FWmNUMFiXB2PkK4UBLJZSt7WvY1a51RjhuYQ6TQHZsNO0psuQcCHO9rN6hGjV82yG3N5zcMUvA5XgtJBiLcm5luR3oUsLMDhOHS7eMjbM9TR8Z1K5ZLDugFZFIfUAWc1cOUwy/ofQDjDzMJvU58XZl5ARUpWGyVtWoD3f6DXXKFNY7jE9lAAb6q5DvV5z9lS8yohLC54ba5Ag1NbCfWOgJz86ywerIc2GbpIBaZ43K+LOPcrcZ4AXk5E9R/TqZwaeSEqsCnVlmpJy6wdg9qxXQPnXzBD/f6h4kH/quJ2Hp5MWI0T4xJS+K2j0bQUZllyL7leWAM5OUw/e6eX2AsXKAdjhvp98hy6iGk3vO+Cz3o30xl0G5eQP1belqoSHk/bK3rE5HOvjg2eswvigWXYArRyyWV7ucLh1qh28Maprd5wTpMgNx+u7sxeeALKg== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0701MB2358;31:y4Hh44KRzypg8w8ATCY+hwQTLAxYG8ssnUSGxFoujVb7eTeq0BF7gW8nuFnCBHmEvpkTBVVQ4NXQl0V0scLIZjYxdNpPepc7OPkTSlfqBn4WnSAqGVcbsaIYAsRyjbYL2lg4smNnsnIV34LhkbrJOYWdRyiMJRR7TGzSDlj1xHix9P517tf/G6G1HS4yL4ba/NeH5CxclpYJ3SvB3EEU1O2Br6hABnq2ENLGPFrwf5uhZNTAEveIPeqAyKZ4y2xL;20:8Wp4VXFatx7huZhB6AS1ocNEBiGDtLilGlCnxB/0QwEtrIoHS/lGTEedj1tAFvhptrXymZX0FJ2kQtP23AFSpUfZQgFgpj1fr+hzP4BOopdmFX7OrIwNNJkyqQEAiRPy/BDsl3AiUSviLGvB4KNbdS0j+VAdrHNhxMIbSjy6mdN+zPZrEMseHXBnxcVqHCsQRR2i4VcPsm4XfMYHu2fzAq805hiLUrFASURHEXBDS96ps3973ahkaXX+xSZHMbHlVZzqn8C+2j6rTOWgC5r30K8VNpfOmYpKkFL6llBIRJC9W1RE0fARBu3Zzcmc5b4Dn6ATGhW64Q6XCMnvEx5xPmj3DYjH1DXU0juul5W0LzGI2krO6KwSxyTJxpgWzzJmwFn569Zs0zf+K1mzwYrOUkFvuCmgHk6Zn6nCeAVwFpq8E4lGCv6knCfWUIRPOMc06I70NmOKqp8LNC56oNHiYbzNePs6sNC302QYonwbOgZJ02B3JJ0Y46y7qfVTnuIp X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(82608151540597); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123562025)(20161123560025)(20161123558025)(20161123555025)(6072148);SRVR:DB6PR0701MB2358;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0701MB2358; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0701MB2358;4:WSvJWeNPz3Td5FN/ihKiRcY9D04t1TNSbDqbDHgzbpv2eIX524n/SKwt8GH93UEe2O1i38KibsyuqNDFupA7If4mERkoNt07L2i0szN7Anp/DoThC2jMW1AWIAll4QOqcytoNfg2TQpN5lNPt6tswfmPkWFStKkqOd2zkndJDAAY1PlFMiWWVBc8Wu7zUJ8lMtAq2E3lf0nhuJnCb+OGL/KfmA9JlUdLtKVbUSM+LyGWcxbfdEjnMDi4RmdiNrLESYNhAnLLSwY/xoT8mZdFmOcclHmpIrFRhvZWoMV9OEYP61BhfRRfkgwCj0CkKnpUHjOdrla6ScqZFw9fnFE4OofbVo2qXGvGeHT2RIVHMU3N5mdf7kn2/A1EctQIc2oi0QKYTXECChZFplA0POGlCfMsF0iM2eMzwIctDJmSnmoa3waxyZcHZbQmxCkUinNF7BN3duyeJxeuu5kH/5OndaDD6GQpk6aVUXIIGTvpiA/BGgbWNmNIELrwm3fMzawWm22xwHFw3eJTL1WR2lZDWKnzzB5a7MYH0vScyHwKSevLBoeCeDkaDxHD91NPWnhi82fu/fQ6iz8FO3tU5tuRIaiIPUW0sXGM9LwW0ni1BVpxlzRqp/aY0eBvBUiI/w+nl5rNhuXObbByzLm0qxAPYM0FBAkBn70fshSwJLXlV5s= X-Forefront-PRVS: 02543CD7CD X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39840400002)(39860400002)(39410400002)(39450400003)(39850400002)(50466002)(66066001)(42186005)(6486002)(6506006)(81166006)(2950100002)(6666003)(47776003)(5003940100001)(8676002)(6512007)(5660300001)(2906002)(103116003)(50986999)(76176999)(25786009)(4326008)(36756003)(38730400002)(107886003)(1076002)(189998001)(50226002)(33646002)(53936002)(3846002)(6116002)(48376002)(575784001)(7736002)(305945005)(86362001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0701MB2358;H:trfedora.emea.nsn-net.net;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB6PR0701MB2358;23:g7r7+WXyVaeFD7sHkM0HiTNH6AZq/eaQ+otDX1a?= =?us-ascii?Q?5sIETuV1V27+2kxnoLrx31uts3XRClqyanhp5AblNvAa7cv1gk/rMgaeoXB3?= =?us-ascii?Q?ijXauzb90h3uLMquHdJmVEj05RUIjajGTjZevPNbTih4hjF12nSuCHwk4R0E?= =?us-ascii?Q?Q4X8cctSycasvegloWuyM6TfzhbkNPPVxJW3C7380mqVhHn14G14gAUIpkRi?= =?us-ascii?Q?wnVtBZiOsvMbBbNNVhQyuR6ZDrgjhs1OnRAGqpUdcqWDQwcogWlONSJ14DMq?= =?us-ascii?Q?rV4V7bljetEvluzzKK0RUbCNLtlmwRcmwHkRulBzr9l6CnDh5pfJ4chRYN1A?= =?us-ascii?Q?cxay2S9+DzIpqZ9U0UpJIWqhBPy+ZjBfy+LCx+ai/lqU3d4zYGHH42EvwkRi?= =?us-ascii?Q?+KmqUChvshHHdbGZFCSWhG8bY6tClmwZ9fsAVEUzpHpq0B0IlYk8sAxwVJk1?= =?us-ascii?Q?PG8/1eRUSR03tUGkG0XSqRSvnBMaOcL1rBT0+jdz299ieNVFbgGZjFd7Nr8P?= =?us-ascii?Q?v/U9P1HCq/PFJRAQ6Pz8LprnZp4vY+BJO9HnGfkyYwJYwjEPWKBz0DgKQear?= =?us-ascii?Q?E9832h9PhNtwWjpkldfEPSon8n0MRSJjcnwGBRIaDdtVnRnls6F+6ejNqfZK?= =?us-ascii?Q?SP6Iiu597bp5ExXo9WTcRcfFBvmSz80gx5O1rnvsC/dLSmWmAHmysLrAvDVz?= =?us-ascii?Q?HnrDCWofMvYhGLWpWgOQaDk4ax2zWGdo6ZPoX0eTHFanL1L45BcsdbQ0RHWc?= =?us-ascii?Q?oiwwGPg+esIuTTNz5mvBiO5UJ/yMRCuJzMAJiN9ePOmvqs3XrEEtEoxGQAjm?= =?us-ascii?Q?Bh1tSoyvT5zgnsV8WRMKa3HBOOgSWhVL0u9oRVwfbM1kV9YSRhidKD1pEx4F?= =?us-ascii?Q?I2eTB3jzkafHHRhE6fUqbbvlRI+pu8w6+eX+meAkik5AgcPZP0pirR5Ft8Wg?= =?us-ascii?Q?suMrUWa9P8c1lHKrr3kkimnZWXORA7iz3fA0x7EuIoozD1yEkOFUSj41Z7DV?= =?us-ascii?Q?R0m4dSsfQXkRj9+rCxnA4mQMVlNqCeDhcZLZ0vp+KATXvaX6OxUuIBT8avOh?= =?us-ascii?Q?0agt19aw=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0701MB2358;6:E2mvIVqgOqUZNPRK3pjQpBjVfnT6gk6HA23XUy23T3VzKZ6O1zOzcp5YksPJytlw8oCuLvOkAcYfzZ2rbCFAhCCDHYLPvGJSnRqoDhyUHcy//risqxY1KofPLzete4aQ1PpXAD7cwsVBgDJck7KzS/1yBFjxGTZ6id1ZARguHiiJCDd6uiAuexZbjORyd4gg2GFhCFBChVor2qTgL5kcXOLmC/9xHpddiqcwQT/VRzwlpVZgeaEEi3LisF76EcHaxh+rJj96QokdTfh+82DIiWj1F9Y/2Nafjo6BvEP+uvm7c5BEB8tVjRRQyR8sW83tKvCibd+T+ZjN4mx/gotUgw06zmZxthp7ZJGBccLq1grHg/K5cd9fuscz9mVkt/VGGtSGa6Z3rakygQsdHEBQ7cLZbMLd47AlbfKstbFUe3g=;5:GocpCQYXIcG//15JkhaCFqSh3FQH+MRm7rDS1jzVuFjRu1MVugv6bZmp/QIxOSUjtDhKbYDviomdB80k58wZo0eQRWpOgHM4tF3fIlHrvUjqgYVFo7r3DMi1tCbolejRWcwa9trcNenWYuQBo+LJnA==;24:4soXCk8UjysteQDgzqEVeafxBHKP/ApCgSDxaW/eO6rVV5xLV/sBq6I71p9YCK5WiHA8adtcxqndx7xjNO/HGIyQrVpPnZeIwnFxpm3OhLc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0701MB2358;7:aJ3ZoYDIJgCIpLMWJqFAK9RPeRdBrXW8xzL1eFXe4iTTNZQHrw+KT1dXVgoUeewncNNgU/+Iw271I1r68ldHU5PoJA01alYpdDUQ6llte4Hnza/n7UfXReSDIu0xlpTTeR/rixjQngFMr4QpT5tbDHsndrz5SnFcMvOo0VOO1cbqREizJVUoVd9K6FTS99xqSkAFoa9darNyE0OcpZ4dUm4aotnuQNpD/RbEpFhYGEASfxLc+MaFSn4TswNcChsKq0klPumt4qylXorHt7odwRsh7vMCAFgQlCvidtFmWet2Ya6WEsINAth3hA0kdAG/q6ZQ6TRZIU8uATUUDoE3pg== X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2017 13:06:36.7432 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0701MB2358 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2029 Lines: 54 Valgrind was complaining: $ valgrind ./perf list >/dev/null ==11643== Memcheck, a memory error detector ==11643== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. ==11643== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info ==11643== Command: ./perf list ==11643== ==11643== Conditional jump or move depends on uninitialised value(s) ==11643== at 0x4C30620: rindex (vg_replace_strmem.c:199) ==11643== by 0x49DAA9: build_id_cache__origname (build-id.c:198) ==11643== by 0x49E1C7: build_id_cache__valid_id (build-id.c:222) ==11643== by 0x49E1C7: build_id_cache__list_all (build-id.c:507) ==11643== by 0x4B9C8F: print_sdt_events (parse-events.c:2067) ==11643== by 0x4BB0B3: print_events (parse-events.c:2313) ==11643== by 0x439501: cmd_list (builtin-list.c:53) ==11643== by 0x497150: run_builtin (perf.c:359) ==11643== by 0x428CE0: handle_internal_command (perf.c:421) ==11643== by 0x428CE0: run_argv (perf.c:467) ==11643== by 0x428CE0: main (perf.c:614) [...] Additionally, a zero length result from readlink() is not very interesting. Signed-off-by: Tommi Rantala --- tools/perf/util/build-id.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c index 234859f..9ad77b0 100644 --- a/tools/perf/util/build-id.c +++ b/tools/perf/util/build-id.c @@ -182,13 +182,17 @@ char *build_id_cache__origname(const char *sbuild_id) char buf[PATH_MAX]; char *ret = NULL, *p; size_t offs = 5; /* == strlen("../..") */ + ssize_t len; linkname = build_id_cache__linkname(sbuild_id, NULL, 0); if (!linkname) return NULL; - if (readlink(linkname, buf, PATH_MAX) < 0) + len = readlink(linkname, buf, sizeof(buf)-1); + if (len <= 0) goto out; + buf[len] = '\0'; + /* The link should be "../../" */ p = strrchr(buf, '/'); /* Cut off the "/" */ if (p && (p > buf + offs)) { -- 2.9.3