OSDN Git Service

fm10k: use snprintf() instead of sprintf() to avoid buffer overflow
authorJacob Keller <jacob.e.keller@intel.com>
Tue, 25 Aug 2015 00:01:58 +0000 (17:01 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 14 Oct 2015 06:49:13 +0000 (23:49 -0700)
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c

index 08ecf43..5304bc1 100644 (file)
@@ -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,
index 4ef2fbd..447a5f8 100644 (file)
@@ -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;
        }
 }