lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a669fd2d-f8e2-4dc8-b55b-ccdc10922481@bell-sw.com>
Date: Mon, 8 Jul 2024 13:37:15 +0300
From: Alexey Kodanev <aleksei.kodanev@...l-sw.com>
To: Simon Horman <horms@...nel.org>
Cc: netdev@...r.kernel.org, Rasesh Mody <rmody@...vell.com>,
 Sudarsana Kalluru <skalluru@...vell.com>, GR-Linux-NIC-Dev@...vell.com,
 Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
 Paolo Abeni <pabeni@...hat.com>
Subject: Re: [PATCH net] bna: adjust 'name' buf size of bna_tcb and bna_ccb
 structures

Hi Simon!
On 27.06.2024 17:17, Simon Horman wrote:
> + Eric Dumazet, Jakub Kicinski, Paolo Abeni
> 
> On Tue, Jun 25, 2024 at 07:14:33PM +0000, Alexey Kodanev wrote:
>> To have enough space to write all possible sprintf() args. Currently
>> 'name' size is 16, but the first '%s' specifier may already need at
>> least 16 characters, since 'bnad->netdev->name' is used there.
>>
>> For '%d' specifiers, assume that they require:
>>  * 1 char for 'tx_id + tx_info->tcb[i]->id' sum, BNAD_MAX_TXQ_PER_TX is 8
>>  * 2 chars for 'rx_id + rx_info->rx_ctrl[i].ccb->id', BNAD_MAX_RXP_PER_RX
>>    is 16
>>
>> And replace sprintf with snprintf.
>>
>> Detected using the static analysis tool - Svace.
>>
>> Fixes: 8b230ed8ec96 ("bna: Brocade 10Gb Ethernet device driver")
>> Signed-off-by: Alexey Kodanev <aleksei.kodanev@...l-sw.com>
> 
> Thanks Alexey,
> 
> I agree that this change is a nice improvement.  And I verified that gcc-13
> W=1 builds on x86_64 report warnings regarding the issues addressed by this
> patch: the warnings are resolved by this patch.
> 
> But I do also wonder if we should consider removing this driver.
> I don't see any non-trivial updates to it since
> commit d667f78514c6 ("bna: Add synchronization for tx ring.")
> a bug fix from November 2016 which was included in v4.9.
> 
> Although, perhaps your patch indicates this driver is being used :)

Not at all :)

Well, I will resend a new version with suggested changes to net-next since
no one has commented on the removal yet.

> 
> On process:
> 
> When posting patches for net or net-next, please generate a CC list using
> ./scripts/get_maintainer.pl your.patch
> 
> This does not seem to be a bug fix in the sense that it doesn't seem
> to resolve a problem that manifests itself. If so, it should be targeted
> at net-next rather than net.
> 
> Link: https://docs.kernel.org/process/maintainer-netdev.html
> 
> ...
> 
>> ---
>>  drivers/net/ethernet/brocade/bna/bna_types.h |  2 +-
>>  drivers/net/ethernet/brocade/bna/bnad.c      | 11 ++++++-----
>>  2 files changed, 7 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/brocade/bna/bna_types.h b/drivers/net/ethernet/brocade/bna/bna_types.h
>> index a5ebd7110e07..986f43d27711 100644
>> --- a/drivers/net/ethernet/brocade/bna/bna_types.h
>> +++ b/drivers/net/ethernet/brocade/bna/bna_types.h
>> @@ -416,7 +416,7 @@ struct bna_ib {
>>  /* Tx object */
>>  
>>  /* Tx datapath control structure */
>> -#define BNA_Q_NAME_SIZE		16
>> +#define BNA_Q_NAME_SIZE		(IFNAMSIZ + 6)
>>  struct bna_tcb {
>>  	/* Fast path */
>>  	void			**sw_qpt;
>> diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
>> index fe121d36112d..3313a0d84466 100644
>> --- a/drivers/net/ethernet/brocade/bna/bnad.c
>> +++ b/drivers/net/ethernet/brocade/bna/bnad.c
>> @@ -1534,8 +1534,9 @@ bnad_tx_msix_register(struct bnad *bnad, struct bnad_tx_info *tx_info,
>>  
>>  	for (i = 0; i < num_txqs; i++) {
>>  		vector_num = tx_info->tcb[i]->intr_vector;
>> -		sprintf(tx_info->tcb[i]->name, "%s TXQ %d", bnad->netdev->name,
>> -				tx_id + tx_info->tcb[i]->id);
>> +		snprintf(tx_info->tcb[i]->name, BNA_Q_NAME_SIZE, "%s TXQ %d",
>> +			 bnad->netdev->name,
>> +			 tx_id + tx_info->tcb[i]->id);
>>  		err = request_irq(bnad->msix_table[vector_num].vector,
>>  				  (irq_handler_t)bnad_msix_tx, 0,
>>  				  tx_info->tcb[i]->name,
>> @@ -1585,9 +1586,9 @@ bnad_rx_msix_register(struct bnad *bnad, struct bnad_rx_info *rx_info,
>>  
>>  	for (i = 0; i < num_rxps; i++) {
>>  		vector_num = rx_info->rx_ctrl[i].ccb->intr_vector;
>> -		sprintf(rx_info->rx_ctrl[i].ccb->name, "%s CQ %d",
>> -			bnad->netdev->name,
>> -			rx_id + rx_info->rx_ctrl[i].ccb->id);
>> +		snprintf(rx_info->rx_ctrl[i].ccb->name, BNA_Q_NAME_SIZE, "%s CQ %d",
> 
> nit: This line could be trivially line wrapped so that it is less than 80
>      columns wide, which is still preferred for Networking code.
> 
>      Flagged by /scripts/checkpatch.pl --max-line-length=80
> 
>> +			 bnad->netdev->name,
>> +			 rx_id + rx_info->rx_ctrl[i].ccb->id);
>>  		err = request_irq(bnad->msix_table[vector_num].vector,
>>  				  (irq_handler_t)bnad_msix_rx, 0,
>>  				  rx_info->rx_ctrl[i].ccb->name,
>> -- 
>> 2.25.1
>>
>>


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ