LCOV - code coverage report
Current view: top level - lib - net_utils.c (source / functions) Hit Total Coverage
Test: landlock.info Lines: 0 8 0.0 %
Date: 2021-04-22 12:43:58 Functions: 0 1 0.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : #include <linux/string.h>
       3             : #include <linux/if_ether.h>
       4             : #include <linux/ctype.h>
       5             : #include <linux/kernel.h>
       6             : 
       7           0 : bool mac_pton(const char *s, u8 *mac)
       8             : {
       9           0 :         int i;
      10             : 
      11             :         /* XX:XX:XX:XX:XX:XX */
      12           0 :         if (strlen(s) < 3 * ETH_ALEN - 1)
      13             :                 return false;
      14             : 
      15             :         /* Don't dirty result unless string is valid MAC. */
      16           0 :         for (i = 0; i < ETH_ALEN; i++) {
      17           0 :                 if (!isxdigit(s[i * 3]) || !isxdigit(s[i * 3 + 1]))
      18             :                         return false;
      19           0 :                 if (i != ETH_ALEN - 1 && s[i * 3 + 2] != ':')
      20             :                         return false;
      21             :         }
      22           0 :         for (i = 0; i < ETH_ALEN; i++) {
      23           0 :                 mac[i] = (hex_to_bin(s[i * 3]) << 4) | hex_to_bin(s[i * 3 + 1]);
      24             :         }
      25             :         return true;
      26             : }
      27             : EXPORT_SYMBOL(mac_pton);

Generated by: LCOV version 1.14