From patchwork Sun Nov 4 22:19:44 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Colin Ian King X-Patchwork-Id: 197104 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from chlorine.canonical.com (chlorine.canonical.com [91.189.94.204]) by ozlabs.org (Postfix) with ESMTP id 49BCF2C014C for ; Mon, 5 Nov 2012 09:19:57 +1100 (EST) Received: from localhost ([127.0.0.1] helo=chlorine.canonical.com) by chlorine.canonical.com with esmtp (Exim 4.71) (envelope-from ) id 1TV8Xs-00019l-2F; Sun, 04 Nov 2012 22:19:56 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by chlorine.canonical.com with esmtp (Exim 4.71) (envelope-from ) id 1TV8Xp-00018h-CW for fwts-devel@lists.ubuntu.com; Sun, 04 Nov 2012 22:19:53 +0000 Received: from cpc3-craw6-2-0-cust180.croy.cable.virginmedia.com ([77.100.248.181] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1TV8Xp-0000Lu-96 for fwts-devel@lists.ubuntu.com; Sun, 04 Nov 2012 22:19:53 +0000 From: Colin King To: fwts-devel@lists.ubuntu.com Subject: [PATCH 06/12] lib: fwts_battery: use strncpy instead of strcpy Date: Sun, 4 Nov 2012 22:19:44 +0000 Message-Id: <1352067590-11820-7-git-send-email-colin.king@canonical.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1352067590-11820-1-git-send-email-colin.king@canonical.com> References: <1352067590-11820-1-git-send-email-colin.king@canonical.com> X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.13 Precedence: list List-Id: Firmware Test Suite Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: fwts-devel-bounces@lists.ubuntu.com Errors-To: fwts-devel-bounces@lists.ubuntu.com From: Colin Ian King Use the safer strncpy instead of strcpy. This means we also need to add the size of the name paramater in fwts_battery_get_name. Signed-off-by: Colin Ian King --- src/acpi/battery/battery.c | 2 +- src/lib/include/fwts_battery.h | 2 +- src/lib/src/fwts_battery.c | 17 ++++++++++------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/acpi/battery/battery.c b/src/acpi/battery/battery.c index 79e30e2..ab6dd33 100644 --- a/src/acpi/battery/battery.c +++ b/src/acpi/battery/battery.c @@ -235,7 +235,7 @@ static void do_battery_test(fwts_framework *fw, int index) *state = '\0'; - fwts_battery_get_name(fw, index, name); + fwts_battery_get_name(fw, index, name, sizeof(name)); fwts_log_info(fw, "Test battery '%s'.", name); diff --git a/src/lib/include/fwts_battery.h b/src/lib/include/fwts_battery.h index 1cdfdc1..3d74088 100644 --- a/src/lib/include/fwts_battery.h +++ b/src/lib/include/fwts_battery.h @@ -31,6 +31,6 @@ bool fwts_battery_check_trip_point_support(fwts_framework *fw, const int index); int fwts_battery_set_trip_point(fwts_framework *fw, const int index, const int trip_point); int fwts_battery_get_trip_point(fwts_framework *fw, const int index, int *trip_point); int fwts_battery_get_capacity(fwts_framework *fw, const int type, const int index, uint32_t *capacity_mAh, uint32_t *capacity_mWh); -int fwts_battery_get_name(fwts_framework *fw, const int index, char *name); +int fwts_battery_get_name(fwts_framework *fw, const int index, char *name, const size_t name_len); #endif diff --git a/src/lib/src/fwts_battery.c b/src/lib/src/fwts_battery.c index fc231c5..b5a728e 100644 --- a/src/lib/src/fwts_battery.c +++ b/src/lib/src/fwts_battery.c @@ -211,7 +211,8 @@ static int fwts_battery_get_count_proc_fs(DIR *dir, int *count) static int fwts_battery_get_name_sys_fs( DIR *dir, const int index, - char *name) + char *name, + const size_t name_len) { struct dirent *entry; char path[PATH_MAX]; @@ -237,7 +238,7 @@ static int fwts_battery_get_name_sys_fs( if (!match) continue; - strcpy(name, entry->d_name); + strncpy(name, entry->d_name, name_len); return FWTS_OK; } } while (entry); @@ -248,7 +249,8 @@ static int fwts_battery_get_name_sys_fs( static int fwts_battery_get_name_proc_fs( DIR *dir, const int index, - char *name) + char *name, + const size_t name_len) { struct dirent *entry; int i = 0; @@ -261,7 +263,7 @@ static int fwts_battery_get_name_proc_fs( if (!match) continue; - strcpy(name, entry->d_name); + strncpy(name, entry->d_name, name_len); return FWTS_OK; } } while (entry); @@ -628,7 +630,8 @@ int fwts_battery_get_cycle_count( int fwts_battery_get_name( fwts_framework *fw, const int index, - char *name) + char *name, + const size_t name_len) { int ret; DIR *dir; @@ -636,10 +639,10 @@ int fwts_battery_get_name( FWTS_UNUSED(fw); if ((dir = opendir(FWTS_SYS_CLASS_POWER_SUPPLY)) != NULL) { - ret = fwts_battery_get_name_sys_fs(dir, index, name); + ret = fwts_battery_get_name_sys_fs(dir, index, name, name_len); closedir(dir); } else if ((dir = opendir(FWTS_PROC_ACPI_BATTERY)) != NULL) { - ret = fwts_battery_get_name_proc_fs(dir, index, name); + ret = fwts_battery_get_name_proc_fs(dir, index, name, name_len); closedir(dir); } else { return FWTS_ERROR;