From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from youngberry.canonical.com ([91.189.89.112]:59280 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727475AbeHaRqp (ORCPT ); Fri, 31 Aug 2018 13:46:45 -0400 To: linux-fsdevel@vger.kernel.org, David Howells , Al Viro Cc: "linux-kernel@vger.kernel.org" From: Colin Ian King Subject: fs: hfs: Possible issue with increment of extent Message-ID: Date: Fri, 31 Aug 2018 14:39:11 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hi, Static analysis has picked up a potential issue with an out of bounds read in fs/hfs/extent.c; the following for-loop in hfs_free_fork() increments i and also extent while also reading extent[i].count. This looks incorrect to me, I think the increment of extent is not needed: for (i = 0; i < 3; extent++, i++) blocks += be16_to_cpu(extent[i].count); res = hfs_free_extents(sb, extent, blocks, blocks); I'm not familiar enough with the code to conclude that removing the increment of extent is necessary a correct fix just in case I'm missing something subtle here. This issue was picked up by static analysis with CoverityScan: CID 711541 (#1 of 1): Out-of-bounds read: Overrunning array of 3 4-byte elements at element index 4 (byte offset 16) by dereferencing pointer extent + i. Colin