From patchwork Fri Sep 16 20:49:39 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Sandeen X-Patchwork-Id: 115038 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 19896B6F9D for ; Sat, 17 Sep 2011 06:49:53 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755698Ab1IPUtu (ORCPT ); Fri, 16 Sep 2011 16:49:50 -0400 Received: from sandeen.net ([63.231.237.45]:46759 "EHLO mail.sandeen.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755907Ab1IPUtr (ORCPT ); Fri, 16 Sep 2011 16:49:47 -0400 Received: by mail.sandeen.net (Postfix, from userid 500) id 24A614A8BA82; Fri, 16 Sep 2011 15:49:45 -0500 (CDT) From: Eric Sandeen To: linux-ext4@vger.kernel.org Cc: Eric Sandeen Subject: [PATCH 24/25] e4defrag: Check error return of sysconf() Date: Fri, 16 Sep 2011 15:49:39 -0500 Message-Id: <1316206180-6375-25-git-send-email-sandeen@redhat.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1316206180-6375-1-git-send-email-sandeen@redhat.com> References: <1316206180-6375-1-git-send-email-sandeen@redhat.com> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org In theory sysconf() can fail, so check for an error return. Signed-off-by: Eric Sandeen --- misc/e4defrag.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/misc/e4defrag.c b/misc/e4defrag.c index eea3057..4ade180 100644 --- a/misc/e4defrag.c +++ b/misc/e4defrag.c @@ -399,13 +399,16 @@ static int calc_entry_counts(const char *file EXT2FS_ATTR((unused)), static int page_in_core(int fd, struct move_extent defrag_data, unsigned char **vec, unsigned int *page_num) { - long pagesize = sysconf(_SC_PAGESIZE); + long pagesize; void *page = NULL; loff_t offset, end_offset, length; if (vec == NULL || *vec != NULL) return -1; + pagesize = sysconf(_SC_PAGESIZE); + if (pagesize < 0) + return -1; /* In mmap, offset should be a multiple of the page size */ offset = (loff_t)defrag_data.orig_start * block_size; length = (loff_t)defrag_data.len * block_size;