From patchwork Mon May 30 21:19:04 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Trofimovich X-Patchwork-Id: 830952 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.3) with ESMTP id p4ULK7kw005796 for ; Mon, 30 May 2011 21:20:08 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754158Ab1E3VUE (ORCPT ); Mon, 30 May 2011 17:20:04 -0400 Received: from smtp.gentoo.org ([140.211.166.183]:54933 "EHLO smtp.gentoo.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753957Ab1E3VUD (ORCPT ); Mon, 30 May 2011 17:20:03 -0400 Received: from gentoo.org (unknown [178.125.169.231]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: slyfox) by smtp.gentoo.org (Postfix) with ESMTPSA id 41C0C1B4006; Mon, 30 May 2011 21:20:00 +0000 (UTC) Received: by gentoo.org (sSMTP sendmail emulation); Tue, 31 May 2011 00:19:56 +0300 From: Sergei Trofimovich To: Chris Mason Cc: linux-btrfs@vger.kernel.org, Sergei Trofimovich Subject: [PATCH 5/9] mkfs.btrfs: fix symlink names writing Date: Tue, 31 May 2011 00:19:04 +0300 Message-Id: <1306790348-9553-6-git-send-email-slyfox@gentoo.org> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1306790348-9553-1-git-send-email-slyfox@gentoo.org> References: <1306790348-9553-1-git-send-email-slyfox@gentoo.org> Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Mon, 30 May 2011 21:20:08 +0000 (UTC) Found by valgrind: ==8968== Use of uninitialised value of size 8 ==8968== at 0x41CE7D: crc32c_le (crc32c.c:98) ==8968== by 0x40A1D0: csum_tree_block_size (disk-io.c:82) ==8968== by 0x40A2D4: csum_tree_block (disk-io.c:105) ==8968== by 0x40A7D6: write_tree_block (disk-io.c:241) ==8968== by 0x40ACEE: __commit_transaction (disk-io.c:354) ==8968== by 0x40AE9E: btrfs_commit_transaction (disk-io.c:385) ==8968== by 0x42CF66: make_image (mkfs.c:1061) ==8968== by 0x42DE63: main (mkfs.c:1410) ==8968== Uninitialised value was created by a stack allocation ==8968== at 0x42B5FB: add_inode_items (mkfs.c:493) readlink(2) does not write '\0' for us, so make it manually. Signed-off-by: Sergei Trofimovich --- mkfs.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/mkfs.c b/mkfs.c index 9d7b792..8ff2b1e 100644 --- a/mkfs.c +++ b/mkfs.c @@ -709,11 +709,13 @@ static int add_symbolic_link(struct btrfs_trans_handle *trans, fprintf(stderr, "readlink failed for %s\n", path_name); goto fail; } - if (ret > sectorsize) { + if (ret >= sectorsize) { fprintf(stderr, "symlink too long for %s", path_name); ret = -1; goto fail; } + + buf[ret] = '\0'; /* readlink does not do it for us */ ret = btrfs_insert_inline_extent(trans, root, objectid, 0, buf, ret + 1); fail: