* [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow
@ 2015-08-25 0:01 Jacob Keller
2015-08-25 0:01 ` [Intel-wired-lan] [next-queue] fm10k: Correct MTU for jumbo frames Jacob Keller
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Jacob Keller @ 2015-08-25 0:01 UTC (permalink / raw)
To: intel-wired-lan
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c | 6 +++---
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 8 ++++----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c b/drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c
index 08ecf43dffc7..5304bc1fbecd 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c
@@ -176,7 +176,7 @@ void fm10k_dbg_q_vector_init(struct fm10k_q_vector *q_vector)
return;
/* Generate a folder for each q_vector */
- sprintf(name, "q_vector.%03d", q_vector->v_idx);
+ snprintf(name, sizeof(name), "q_vector.%03d", q_vector->v_idx);
q_vector->dbg_q_vector = debugfs_create_dir(name, interface->dbg_intfc);
if (!q_vector->dbg_q_vector)
@@ -186,7 +186,7 @@ void fm10k_dbg_q_vector_init(struct fm10k_q_vector *q_vector)
for (i = 0; i < q_vector->tx.count; i++) {
struct fm10k_ring *ring = &q_vector->tx.ring[i];
- sprintf(name, "tx_ring.%03d", ring->queue_index);
+ snprintf(name, sizeof(name), "tx_ring.%03d", ring->queue_index);
debugfs_create_file(name, 0600,
q_vector->dbg_q_vector, ring,
@@ -197,7 +197,7 @@ void fm10k_dbg_q_vector_init(struct fm10k_q_vector *q_vector)
for (i = 0; i < q_vector->rx.count; i++) {
struct fm10k_ring *ring = &q_vector->rx.ring[i];
- sprintf(name, "rx_ring.%03d", ring->queue_index);
+ snprintf(name, sizeof(name), "rx_ring.%03d", ring->queue_index);
debugfs_create_file(name, 0600,
q_vector->dbg_q_vector, ring,
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
index 4ef2fbd22911..447a5f8da42f 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
@@ -206,13 +206,13 @@ static void fm10k_get_stat_strings(struct net_device *dev, u8 *data)
}
for (i = 0; i < interface->hw.mac.max_queues; i++) {
- sprintf(p, "tx_queue_%u_packets", i);
+ snprintf(p, ETH_GSTRING_LEN, "tx_queue_%u_packets", i);
p += ETH_GSTRING_LEN;
- sprintf(p, "tx_queue_%u_bytes", i);
+ snprintf(p, ETH_GSTRING_LEN, "tx_queue_%u_bytes", i);
p += ETH_GSTRING_LEN;
- sprintf(p, "rx_queue_%u_packets", i);
+ snprintf(p, ETH_GSTRING_LEN, "rx_queue_%u_packets", i);
p += ETH_GSTRING_LEN;
- sprintf(p, "rx_queue_%u_bytes", i);
+ snprintf(p, ETH_GSTRING_LEN, "rx_queue_%u_bytes", i);
p += ETH_GSTRING_LEN;
}
}
--
2.5.0.280.g4aaba03
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Intel-wired-lan] [next-queue] fm10k: Correct MTU for jumbo frames
2015-08-25 0:01 [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jacob Keller
@ 2015-08-25 0:01 ` Jacob Keller
2015-08-25 0:02 ` [Intel-wired-lan] [next-queue] fm10k: do not use enum as boolean Jacob Keller
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Jacob Keller @ 2015-08-25 0:01 UTC (permalink / raw)
To: intel-wired-lan
Based on hardware testing, the host interface can support up to 15368
bytes on the wire. Subtracting 8 for an internal switch tag and 14 for
the L2 header shows that the MTU should not be allowed to be set above
15346 bytes.
Signed-off-by: Matthew Vick <matthew.vick@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
drivers/net/ethernet/intel/fm10k/fm10k.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k.h b/drivers/net/ethernet/intel/fm10k/fm10k.h
index 14440200499b..9e05a36783e5 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k.h
+++ b/drivers/net/ethernet/intel/fm10k/fm10k.h
@@ -33,7 +33,7 @@
#include "fm10k_pf.h"
#include "fm10k_vf.h"
-#define FM10K_MAX_JUMBO_FRAME_SIZE 15358 /* Maximum supported size 15K */
+#define FM10K_MAX_JUMBO_FRAME_SIZE 15346 /* Maximum supported size 15K */
#define MAX_QUEUES FM10K_MAX_QUEUES_PF
--
2.5.0.280.g4aaba03
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Intel-wired-lan] [next-queue] fm10k: do not use enum as boolean
2015-08-25 0:01 [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jacob Keller
2015-08-25 0:01 ` [Intel-wired-lan] [next-queue] fm10k: Correct MTU for jumbo frames Jacob Keller
@ 2015-08-25 0:02 ` Jacob Keller
2015-09-30 19:05 ` Singh, Krishneil K
2015-08-25 0:02 ` [Intel-wired-lan] [next-queue] fm10k: do not assume VF always has 1 queue Jacob Keller
` (2 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Jacob Keller @ 2015-08-25 0:02 UTC (permalink / raw)
To: intel-wired-lan
Check for actual value NETREG_UNINITIALIZED in case it ever changes from
the current value of zero.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
---
drivers/net/ethernet/intel/fm10k/fm10k_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
index cb5e3150048b..000f2b5ab3e5 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
@@ -1905,7 +1905,7 @@ static void fm10k_init_reta(struct fm10k_intfc *interface)
u32 reta, base;
/* If the netdev is initialized we have to maintain table if possible */
- if (interface->netdev->reg_state) {
+ if (interface->netdev->reg_state != NETREG_UNINITIALIZED) {
for (i = FM10K_RETA_SIZE; i--;) {
reta = interface->reta[i];
if ((((reta << 24) >> 24) < rss_i) &&
--
2.5.0.280.g4aaba03
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Intel-wired-lan] [next-queue] fm10k: do not assume VF always has 1 queue
2015-08-25 0:01 [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jacob Keller
2015-08-25 0:01 ` [Intel-wired-lan] [next-queue] fm10k: Correct MTU for jumbo frames Jacob Keller
2015-08-25 0:02 ` [Intel-wired-lan] [next-queue] fm10k: do not use enum as boolean Jacob Keller
@ 2015-08-25 0:02 ` Jacob Keller
2015-08-26 16:44 ` [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jesse Brandeburg
2015-09-30 19:08 ` Singh, Krishneil K
4 siblings, 0 replies; 8+ messages in thread
From: Jacob Keller @ 2015-08-25 0:02 UTC (permalink / raw)
To: intel-wired-lan
It is possible that the PF has not yet assigned resources to the VF.
Although rare, this could result in the VF attempting to read queues it
does not own and result in FUM or THI faults in the PF. To prevent this,
check queue 0 before we continue in init_hw_vf.
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_vf.c b/drivers/net/ethernet/intel/fm10k/fm10k_vf.c
index 36c8b0aa08fd..4d1da54a061b 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_vf.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_vf.c
@@ -103,7 +103,12 @@ static s32 fm10k_init_hw_vf(struct fm10k_hw *hw)
s32 err;
u16 i;
- /* assume we always have at least 1 queue */
+ /* verify we have at least 1 queue */
+ if (!~FM10K_READ_REG(hw, FM10K_TXQCTL(0)) ||
+ !~FM10K_READ_REG(hw, FM10K_RXQCTL(0)))
+ return FM10K_ERR_NO_RESOURCES;
+
+ /* determine how many queues we have */
for (i = 1; tqdloc0 && (i < FM10K_MAX_QUEUES_POOL); i++) {
/* verify the Descriptor cache offsets are increasing */
tqdloc = ~fm10k_read_reg(hw, FM10K_TQDLOC(i));
--
2.5.0.280.g4aaba03
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow
2015-08-25 0:01 [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jacob Keller
` (2 preceding siblings ...)
2015-08-25 0:02 ` [Intel-wired-lan] [next-queue] fm10k: do not assume VF always has 1 queue Jacob Keller
@ 2015-08-26 16:44 ` Jesse Brandeburg
2015-08-26 16:46 ` Keller, Jacob E
2015-09-30 19:08 ` Singh, Krishneil K
4 siblings, 1 reply; 8+ messages in thread
From: Jesse Brandeburg @ 2015-08-26 16:44 UTC (permalink / raw)
To: intel-wired-lan
On Mon, 24 Aug 2015 17:01:58 -0700
Jacob Keller <jacob.e.keller@intel.com> wrote:
> Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> ---
> drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c | 6 +++---
> drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 8 ++++----
> 2 files changed, 7 insertions(+), 7 deletions(-)
The changes look fine, but I've seen multiple comments to the list that
there needs to be a body in the commit message.
Suggest:
Subject:
fm10k: use snprintf()
Body:
Avoid buffer overflow and follow best practices by using snprintf()
instead of sprintf().
^ permalink raw reply [flat|nested] 8+ messages in thread* [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow
2015-08-25 0:01 [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jacob Keller
` (3 preceding siblings ...)
2015-08-26 16:44 ` [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jesse Brandeburg
@ 2015-09-30 19:08 ` Singh, Krishneil K
4 siblings, 0 replies; 8+ messages in thread
From: Singh, Krishneil K @ 2015-09-30 19:08 UTC (permalink / raw)
To: intel-wired-lan
-----Original Message-----
From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On Behalf Of Jacob Keller
Sent: Monday, August 24, 2015 5:02 PM
To: Intel Wired LAN <intel-wired-lan@lists.osuosl.org>
Subject: [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-09-30 19:08 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-25 0:01 [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jacob Keller
2015-08-25 0:01 ` [Intel-wired-lan] [next-queue] fm10k: Correct MTU for jumbo frames Jacob Keller
2015-08-25 0:02 ` [Intel-wired-lan] [next-queue] fm10k: do not use enum as boolean Jacob Keller
2015-09-30 19:05 ` Singh, Krishneil K
2015-08-25 0:02 ` [Intel-wired-lan] [next-queue] fm10k: do not assume VF always has 1 queue Jacob Keller
2015-08-26 16:44 ` [Intel-wired-lan] [next-queue] fm10k: use snprintf() instead of sprintf() to avoid buffer overflow Jesse Brandeburg
2015-08-26 16:46 ` Keller, Jacob E
2015-09-30 19:08 ` Singh, Krishneil K
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox