From patchwork Thu Jul 25 14:25:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 1136920 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-103951-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="V0hBvhzN"; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="u/HwgfFe"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45vZJW54Bdz9sDB for ; Fri, 26 Jul 2019 00:26:03 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; q=dns; s= default; b=VPAOiJEzb3M/ri0MYsbgeav0BWE51zwEg3+xGue44BWp5wLZxm6Yl 5FtyGENYX5xzNLE0gQ5eTqKkUELveS6GamKJOIQKcThAvSjmKdVZRBtJ4dD8S764 K/TOrzNiPAGzJd/0TZ/H5Crn8sGBt71p+7lsvwAy9LoNSB7OCNdwWE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; s=default; bh=6tZnHpVCzjOsP5tgR/8UruMp6yw=; b=V0hBvhzN3uk1o4yxrFB3LkyMw9Va MW3cQtYBCS7W+W4bAqi4r7NHEEwmMeW9oUZudarb+/0d+2yMnFZOdolk2NM7XlA+ T+UQC8BtSqisDl/elh2Kzk7rmOKT8UOkL39SenOc0/VF+F9/LqoEON7izyNmEaL9 1kfvNSWywbF+PbM= Received: (qmail 90231 invoked by alias); 25 Jul 2019 14:25:58 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 90222 invoked by uid 89); 25 Jul 2019 14:25:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=1867 X-HELO: mail-qk1-f194.google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id; bh=3ROUO9mMtVPgBIzFRR3U9NMdNPaA4JZaGyKTe6Dsg7M=; b=u/HwgfFecdhnubWH0/v8b/TxBkacoYzQm0zhGhh8T2kGw4pdsT0uK61CtyKbw9mIKl gYjVzi3GhKQIznK85s1AS9RDtTUjo3tLMQ2oD2yCHcifxbS0IxHLfKLa3km/hGFoLkYN Ib3uGqG8sbSUzW13yc5lwF25wWysTWO6sCbNzsjMgD/s4A1aq+CqhSwFnOY6Xcq4ec7W S7oRkdU9RmdP2SA0J7NvR/FJwYDqenzfulilnO8XLA2MDBkeLtTg8mQgj9D/W5qcRnNU 7QR6cGQ6T3adv6btbEpXVxIwNnBFDa+CLScMNmMH7VfGL3tzY6T6vqhbiaP2itgHMACO 8ZYA== From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH] Get new entropy on each attempt __gen_tempname (BZ #15813) Date: Thu, 25 Jul 2019 11:25:50 -0300 Message-Id: <20190725142550.18479-1-adhemerval.zanella@linaro.org> This is missing bit for fully fix BZ#15813 (the other two were fixed by 359653aaacad463). Checked on x86_64-linux-gnu. [BZ #15813] sysdeps/posix/tempname.c (__gen_tempname): get entrypy on each attempt. --- sysdeps/posix/tempname.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sysdeps/posix/tempname.c b/sysdeps/posix/tempname.c index de346949b2..e930211703 100644 --- a/sysdeps/posix/tempname.c +++ b/sysdeps/posix/tempname.c @@ -186,7 +186,6 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) { int len; char *XXXXXX; - uint64_t value; unsigned int count; int fd = -1; int save_errno = errno; @@ -218,13 +217,13 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) /* This is where the Xs start. */ XXXXXX = &tmpl[len - 6 - suffixlen]; - /* Get some more or less random data. */ - RANDOM_BITS (value); - value ^= (uint64_t)__getpid () << 32; - - for (count = 0; count < attempts; value += 7777, ++count) + uint64_t pid = (uint64_t)__getpid () << 32; + for (count = 0; count < attempts; ++count) { - uint64_t v = value; + uint64_t v; + /* Get some more or less random data. */ + RANDOM_BITS (v); + v ^= pid; /* Fill in the random bits. */ XXXXXX[0] = letters[v % 62];