From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f194.google.com ([209.85.192.194]:45471 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933292AbeGHVFq (ORCPT ); Sun, 8 Jul 2018 17:05:46 -0400 From: Eric Biggers To: David Howells , Alexander Viro , linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Eric Biggers Subject: [PATCH 16/18] fs_context: de-obfuscate control flow in fscontext_read() Date: Sun, 8 Jul 2018 14:01:52 -0700 Message-Id: <20180708210154.10423-17-ebiggers3@gmail.com> In-Reply-To: <20180708210154.10423-1-ebiggers3@gmail.com> References: <20180708210154.10423-1-ebiggers3@gmail.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: From: Eric Biggers Signed-off-by: Eric Biggers --- fs/fsopen.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/fs/fsopen.c b/fs/fsopen.c index 1fbd8b0ca194b..dd38f6b65aace 100644 --- a/fs/fsopen.c +++ b/fs/fsopen.c @@ -161,20 +161,18 @@ static ssize_t fscontext_read(struct file *file, if (ret < 0) return ret; - ret = -ENODATA; - if (log->head != log->tail) { - index = log->tail & (logsize - 1); - p = log->buffer[index]; - need_free = log->need_free & (1 << index); - log->buffer[index] = NULL; - log->need_free &= ~(1 << index); - log->tail++; - ret = 0; + if (log->head == log->tail) { + mutex_unlock(&fc->uapi_mutex); + return -ENODATA; } + index = log->tail & (logsize - 1); + p = log->buffer[index]; + need_free = log->need_free & (1 << index); + log->buffer[index] = NULL; + log->need_free &= ~(1 << index); + log->tail++; mutex_unlock(&fc->uapi_mutex); - if (ret < 0) - return ret; ret = -EMSGSIZE; n = strlen(p); -- 2.18.0