From 8dab0ef55654d8d44dea64d6f60e371575547b38 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Wed, 27 Mar 2013 06:40:50 +0000 Subject: [PATCH] --- yaml --- r: 362019 b: refs/heads/master c: 715230a44310a8cf66fbfb5a46f9a62a9b2de424 h: refs/heads/master i: 362017: ebc02c0b4ed066bcb9a7e569d59ab2c8b0ed6da2 362015: 6518d352e13f632abd0ef17baaa235c0e4fba904 v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/broadcom/tg3.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f3ba1851e672..fda288bc118c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ea872d7712528ad991bdabb63515bc00ee10993e +refs/heads/master: 715230a44310a8cf66fbfb5a46f9a62a9b2de424 diff --git a/trunk/drivers/net/ethernet/broadcom/tg3.c b/trunk/drivers/net/ethernet/broadcom/tg3.c index 67d2663b3974..17a972734ba7 100644 --- a/trunk/drivers/net/ethernet/broadcom/tg3.c +++ b/trunk/drivers/net/ethernet/broadcom/tg3.c @@ -14604,8 +14604,11 @@ static void tg3_read_vpd(struct tg3 *tp) if (j + len > block_end) goto partno; - memcpy(tp->fw_ver, &vpd_data[j], len); - strncat(tp->fw_ver, " bc ", vpdlen - len - 1); + if (len >= sizeof(tp->fw_ver)) + len = sizeof(tp->fw_ver) - 1; + memset(tp->fw_ver, 0, sizeof(tp->fw_ver)); + snprintf(tp->fw_ver, sizeof(tp->fw_ver), "%.*s bc ", len, + &vpd_data[j]); } partno: