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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Tue, 14 Apr 2020 00:54:52 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Era Mayflower <mayflowerera@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: drivers/net/macsec.c:905:22: warning: Variable 'recovered_pn.lower'
 is assigned a value that is never used. [unreadVariable]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8f3d9f354286745c751374f5f1fcafee6b3f3136
commit: a21ecf0e033807b976967286e6c392f48ee2049f macsec: Support XPN frame handling - IEEE 802.1AEbw
date:   4 weeks ago

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@...el.com>


cppcheck warnings: (new ones prefixed by >>)

   drivers/net/macsec.c:3550:7: warning: Local variable 'ret' shadows outer variable [shadowVariable]
     int ret;
         ^
   drivers/net/macsec.c:3525:6: note: Shadowed declaration
    int ret;
        ^
   drivers/net/macsec.c:3550:7: note: Shadow variable
     int ret;
         ^
   drivers/net/macsec.c:3298:56: warning: Clarify calculation precedence for '&' and '?'. [clarifyCalculation]
     dev_set_allmulti(real_dev, dev->flags & IFF_ALLMULTI ? 1 : -1);
                                                          ^
   drivers/net/macsec.c:3302:34: warning: Clarify calculation precedence for '&' and '?'. [clarifyCalculation]
           dev->flags & IFF_PROMISC ? 1 : -1);
                                    ^
   drivers/net/macsec.c:571:30: warning: 'tmp' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer]
    *iv = (unsigned char *)(tmp + iv_offset);
                                ^
   drivers/net/macsec.c:572:35: warning: 'tmp' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined. [arithOperationsOnVoidPointer]
    *sg = (struct scatterlist *)(tmp + sg_offset);
                                     ^
>> drivers/net/macsec.c:905:22: warning: Variable 'recovered_pn.lower' is assigned a value that is never used. [unreadVariable]
     recovered_pn.lower = hdr_pn;
                        ^
>> drivers/net/macsec.c:908:22: warning: Variable 'recovered_pn.upper' is assigned a value that is never used. [unreadVariable]
      recovered_pn.upper++;
                        ^
   drivers/net/macsec.c:2195:10: warning: Variable 'ret' is assigned a value that is never used. [unreadVariable]
    int ret = 0;
            ^
   drivers/net/macsec.c:2278:10: warning: Variable 'ret' is assigned a value that is never used. [unreadVariable]
    int ret = 0;
            ^

vim +905 drivers/net/macsec.c

   867	
   868	static struct sk_buff *macsec_decrypt(struct sk_buff *skb,
   869					      struct net_device *dev,
   870					      struct macsec_rx_sa *rx_sa,
   871					      sci_t sci,
   872					      struct macsec_secy *secy)
   873	{
   874		int ret;
   875		struct scatterlist *sg;
   876		struct sk_buff *trailer;
   877		unsigned char *iv;
   878		struct aead_request *req;
   879		struct macsec_eth_header *hdr;
   880		u32 hdr_pn;
   881		u16 icv_len = secy->icv_len;
   882	
   883		macsec_skb_cb(skb)->valid = false;
   884		skb = skb_share_check(skb, GFP_ATOMIC);
   885		if (!skb)
   886			return ERR_PTR(-ENOMEM);
   887	
   888		ret = skb_cow_data(skb, 0, &trailer);
   889		if (unlikely(ret < 0)) {
   890			kfree_skb(skb);
   891			return ERR_PTR(ret);
   892		}
   893		req = macsec_alloc_req(rx_sa->key.tfm, &iv, &sg, ret);
   894		if (!req) {
   895			kfree_skb(skb);
   896			return ERR_PTR(-ENOMEM);
   897		}
   898	
   899		hdr = (struct macsec_eth_header *)skb->data;
   900		hdr_pn = ntohl(hdr->packet_number);
   901	
   902		if (secy->xpn) {
   903			pn_t recovered_pn = rx_sa->next_pn_halves;
   904	
 > 905			recovered_pn.lower = hdr_pn;
   906			if (hdr_pn < rx_sa->next_pn_halves.lower &&
   907			    !pn_same_half(hdr_pn, rx_sa->next_pn_halves.lower))
 > 908				recovered_pn.upper++;
   909	
   910			macsec_fill_iv_xpn(iv, rx_sa->ssci, recovered_pn.full64,
   911					   rx_sa->key.salt);
   912		} else {
   913			macsec_fill_iv(iv, sci, hdr_pn);
   914		}
   915	
   916		sg_init_table(sg, ret);
   917		ret = skb_to_sgvec(skb, sg, 0, skb->len);
   918		if (unlikely(ret < 0)) {
   919			aead_request_free(req);
   920			kfree_skb(skb);
   921			return ERR_PTR(ret);
   922		}
   923	
   924		if (hdr->tci_an & MACSEC_TCI_E) {
   925			/* confidentiality: ethernet + macsec header
   926			 * authenticated, encrypted payload
   927			 */
   928			int len = skb->len - macsec_hdr_len(macsec_skb_cb(skb)->has_sci);
   929	
   930			aead_request_set_crypt(req, sg, sg, len, iv);
   931			aead_request_set_ad(req, macsec_hdr_len(macsec_skb_cb(skb)->has_sci));
   932			skb = skb_unshare(skb, GFP_ATOMIC);
   933			if (!skb) {
   934				aead_request_free(req);
   935				return ERR_PTR(-ENOMEM);
   936			}
   937		} else {
   938			/* integrity only: all headers + data authenticated */
   939			aead_request_set_crypt(req, sg, sg, icv_len, iv);
   940			aead_request_set_ad(req, skb->len - icv_len);
   941		}
   942	
   943		macsec_skb_cb(skb)->req = req;
   944		skb->dev = dev;
   945		aead_request_set_callback(req, 0, macsec_decrypt_done, skb);
   946	
   947		dev_hold(dev);
   948		ret = crypto_aead_decrypt(req);
   949		if (ret == -EINPROGRESS) {
   950			return ERR_PTR(ret);
   951		} else if (ret != 0) {
   952			/* decryption/authentication failed
   953			 * 10.6 if validateFrames is disabled, deliver anyway
   954			 */
   955			if (ret != -EBADMSG) {
   956				kfree_skb(skb);
   957				skb = ERR_PTR(ret);
   958			}
   959		} else {
   960			macsec_skb_cb(skb)->valid = true;
   961		}
   962		dev_put(dev);
   963	
   964		aead_request_free(req);
   965	
   966		return skb;
   967	}
   968	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ