:::::: 
:::::: Manual check reason: "low confidence static check first_new_problem: 
drivers/net/usb/hso.c:505:9: warning: Call to function 'sprintf' is insecure as 
it does not provide bounding of the memory buffer or security checks introduced 
in the C11 standard. Replace with analogous functions that support length 
arguments or provides boundary checks such as 'sprintf_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]"
:::::: 

CC: [email protected]
CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Arnd Bergmann <[email protected]>
CC: Masahiro Yamada <[email protected]>
CC: Alex Shi <[email protected]>
CC: Nick Desaulniers <[email protected]>
CC: Miguel Ojeda <[email protected]>
CC: Nathan Chancellor <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   e0dccc3b76fb35bb257b4118367a883073d7390e
commit: e8c07082a810fbb9db303a2b66b66b8d7e588b53 Kbuild: move to -std=gnu11
date:   5 months ago
:::::: branch date: 28 hours ago
:::::: commit date: 5 months ago
config: arm-randconfig-c002-20220721 
(https://download.01.org/0day-ci/archive/20220726/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
72686d68c137551cce816416190a18d45b4d4e2a)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e8c07082a810fbb9db303a2b66b66b8d7e588b53
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout e8c07082a810fbb9db303a2b66b66b8d7e588b53
        # save the config file
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 
clang-analyzer 

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>

clang-analyzer warnings: (new ones prefixed by >>)
           ^
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:363:7: note: 
'type' is equal to PAGELIST_READ
           if ((type == PAGELIST_READ) &&
                ^~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:363:6: note: 
Left side of '&&' is true
           if ((type == PAGELIST_READ) &&
               ^
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:364:8: note: 
Assuming the condition is true
               ((pagelist->offset & (g_cache_line_size - 1)) ||
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:364:52: note: 
Left side of '||' is true
               ((pagelist->offset & (g_cache_line_size - 1)) ||
                                                             ^
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:369:7: note: 
Assuming the condition is false
                   if (down_interruptible(&g_free_fragments_sema)) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:369:3: note: 
Taking false branch
                   if (down_interruptible(&g_free_fragments_sema)) {
                   ^
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:374:11: note: 
Assuming 'g_free_fragments' is non-null
                   WARN_ON(!g_free_fragments);
                           ^
   include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:376:3: note: 
Value assigned to 'g_free_fragments'
                   down(&g_free_fragments_mutex);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:378:11: note: 
Assuming 'fragments' is null
                   WARN_ON(!fragments);
                           ^
   include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:379:22: note: 
Dereference of null pointer
                   g_free_fragments = *(char **)g_free_fragments;
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:423:4: 
warning: Call to function 'memcpy' is insecure as it does not provide security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'memcpy_s' in case 
of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                           memcpy((char *)kmap(pages[0]) +
                           ^~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:423:4: note: 
Call to function 'memcpy' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'memcpy_s' in case of C11
                           memcpy((char *)kmap(pages[0]) +
                           ^~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:431:4: 
warning: Call to function 'memcpy' is insecure as it does not provide security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'memcpy_s' in case 
of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                           memcpy((char *)kmap(pages[num_pages - 1]) +
                           ^~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:431:4: note: 
Call to function 'memcpy' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'memcpy_s' in case of C11
                           memcpy((char *)kmap(pages[num_pages - 1]) +
                           ^~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:648:8: 
warning: Call to function 'snprintf' is insecure as it does not provide 
security checks introduced in the C11 standard. Replace with analogous 
functions that support length arguments or provides boundary checks such as 
'snprintf_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           len = snprintf(buf, sizeof(buf), "  Platform: 2835 (VC master)");
                 ^~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:648:8: note: 
Call to function 'snprintf' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'snprintf_s' in case of C11
           len = snprintf(buf, sizeof(buf), "  Platform: 2835 (VC master)");
                 ^~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1251:9: 
warning: Call to function 'snprintf' is insecure as it does not provide 
security checks introduced in the C11 standard. Replace with analogous 
functions that support length arguments or provides boundary checks such as 
'snprintf_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   len = snprintf(buf, sizeof(buf),
                         ^~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1251:9: note: 
Call to function 'snprintf' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'snprintf_s' in case of C11
                   len = snprintf(buf, sizeof(buf),
                         ^~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1415:3: 
warning: Call to function 'sprintf' is insecure as it does not provide security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'sprintf_s' in 
case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   sprintf(entity, "VCHIQ:   ");
                   ^~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1415:3: note: 
Call to function 'sprintf' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'sprintf_s' in case of C11
                   sprintf(entity, "VCHIQ:   ");
                   ^~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1418:3: 
warning: Call to function 'sprintf' is insecure as it does not provide security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'sprintf_s' in 
case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   sprintf(entity, "%c%c%c%c:%03d",
                   ^~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1418:3: note: 
Call to function 'sprintf' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'sprintf_s' in case of C11
                   sprintf(entity, "%c%c%c%c:%03d",
                   ^~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1470:3: 
warning: Call to function 'sprintf' is insecure as it does not provide security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'sprintf_s' in 
case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   sprintf(entity, "%c%c%c%c:%03d",
                   ^~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1470:3: note: 
Call to function 'sprintf' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'sprintf_s' in case of C11
                   sprintf(entity, "%c%c%c%c:%03d",
                   ^~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1475:3: 
warning: Call to function 'sprintf' is insecure as it does not provide security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'sprintf_s' in 
case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   sprintf(entity, "PEER:   ");
                   ^~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1475:3: note: 
Call to function 'sprintf' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'sprintf_s' in case of C11
                   sprintf(entity, "PEER:   ");
                   ^~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1734:2: 
warning: Call to function 'snprintf' is insecure as it does not provide 
security checks introduced in the C11 standard. Replace with analogous 
functions that support length arguments or provides boundary checks such as 
'snprintf_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           snprintf(threadname, sizeof(threadname), "vchiq-keep/%d",
           ^~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1734:2: note: 
Call to function 'snprintf' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'snprintf_s' in case of C11
           snprintf(threadname, sizeof(threadname), "vchiq-keep/%d",
           ^~~~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1761:2: 
warning: Call to function 'memset' is insecure as it does not provide security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'memset_s' in case 
of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           memset(&pdevinfo, 0, sizeof(pdevinfo));
           ^~~~~~
   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1761:2: note: 
Call to function 'memset' is insecure as it does not provide security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'memset_s' in case of C11
           memset(&pdevinfo, 0, sizeof(pdevinfo));
           ^~~~~~
   Suppressed 43 warnings (41 in non-user code, 2 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   80 warnings generated.
>> drivers/net/usb/hso.c:505:9: warning: Call to function 'sprintf' is insecure 
>> as it does not provide bounding of the memory buffer or security checks 
>> introduced in the C11 standard. Replace with analogous functions that 
>> support length arguments or provides boundary checks such as 'sprintf_s' in 
>> case of C11 
>> [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           return sprintf(buf, "%s\n", port_name);
                  ^~~~~~~
   drivers/net/usb/hso.c:505:9: note: Call to function 'sprintf' is insecure as 
it does not provide bounding of the memory buffer or security checks introduced 
in the C11 standard. Replace with analogous functions that support length 
arguments or provides boundary checks such as 'sprintf_s' in case of C11
           return sprintf(buf, "%s\n", port_name);
                  ^~~~~~~
   drivers/net/usb/hso.c:785:2: warning: Call to function 'memcpy' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           memcpy(odev->mux_bulk_tx_buf, skb->data, skb->len);
           ^~~~~~
   drivers/net/usb/hso.c:785:2: note: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11
           memcpy(odev->mux_bulk_tx_buf, skb->data, skb->len);
           ^~~~~~
   drivers/net/usb/hso.c:861:4: warning: Call to function 'memcpy' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                           memcpy(((unsigned char *)(&odev->rx_ip_hdr)) +
                           ^~~~~~
   drivers/net/usb/hso.c:861:4: note: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11
                           memcpy(((unsigned char *)(&odev->rx_ip_hdr)) +
                           ^~~~~~
   drivers/net/usb/hso.c:1346:2: warning: Call to function 'memcpy' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           memcpy(serial->tx_buffer + serial->tx_buffer_count, buf, tx_bytes);
           ^~~~~~
   drivers/net/usb/hso.c:1346:2: note: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11
           memcpy(serial->tx_buffer + serial->tx_buffer_count, buf, tx_bytes);
           ^~~~~~
   drivers/net/usb/hso.c:1398:18: warning: Dereference of null pointer (loaded 
from variable 'old') [clang-analyzer-core.NullDereference]
                   tty->termios = *old;
                                  ^~~~
   drivers/net/usb/hso.c:1388:6: note: Assuming 'old' is null
           if (old)
               ^~~
   drivers/net/usb/hso.c:1388:2: note: Taking false branch
           if (old)
           ^
   drivers/net/usb/hso.c:1394:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&serial->serial_lock, flags);
           ^
   include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:240:2: note: expanded from macro 
'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/net/usb/hso.c:1394:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&serial->serial_lock, flags);
           ^
   include/linux/spinlock.h:377:43: note: expanded from macro 
'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   drivers/net/usb/hso.c:1395:6: note: Assuming field 'count' is 0
           if (serial->port.count)
               ^~~~~~~~~~~~~~~~~~
   drivers/net/usb/hso.c:1395:2: note: Taking false branch
           if (serial->port.count)
           ^
   drivers/net/usb/hso.c:1398:18: note: Dereference of null pointer (loaded 
from variable 'old')
                   tty->termios = *old;
                                  ^~~~
   drivers/net/usb/hso.c:1524:2: warning: Call to function 'memset' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memset_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           memset(serial_state_notification, 0,
           ^~~~~~
   drivers/net/usb/hso.c:1524:2: note: Call to function 'memset' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memset_s' in case of C11
           memset(serial_state_notification, 0,
           ^~~~~~
   drivers/net/usb/hso.c:1554:2: warning: Call to function 'memcpy' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           memcpy(&cprev, &tiocmget->icount, sizeof(struct uart_icount));
           ^~~~~~
   drivers/net/usb/hso.c:1554:2: note: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11
           memcpy(&cprev, &tiocmget->icount, sizeof(struct uart_icount));
           ^~~~~~
   drivers/net/usb/hso.c:1559:3: warning: Call to function 'memcpy' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   memcpy(&cnow, &tiocmget->icount, sizeof(struct uart_icount));
                   ^~~~~~
   drivers/net/usb/hso.c:1559:3: note: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11
                   memcpy(&cnow, &tiocmget->icount, sizeof(struct uart_icount));
                   ^~~~~~
   drivers/net/usb/hso.c:1595:2: warning: Call to function 'memset' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memset_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           memset(icount, 0, sizeof(struct serial_icounter_struct));
           ^~~~~~
   drivers/net/usb/hso.c:1595:2: note: Call to function 'memset' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memset_s' in case of C11
           memset(icount, 0, sizeof(struct serial_icounter_struct));
           ^~~~~~
   drivers/net/usb/hso.c:1600:2: warning: Call to function 'memcpy' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           memcpy(&cnow, &tiocmget->icount, sizeof(struct uart_icount));
           ^~~~~~
   drivers/net/usb/hso.c:1600:2: note: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11
           memcpy(&cnow, &tiocmget->icount, sizeof(struct uart_icount));
           ^~~~~~
   drivers/net/usb/hso.c:1815:2: warning: Call to function 'memset' is insecure 
as it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memset_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
           memset(serial->rx_data[0], 0, CTRL_URB_RX_SIZE);
           ^~~~~~
   drivers/net/usb/hso.c:1815:2: note: Call to function 'memset' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memset_s' in case of C11
           memset(serial->rx_data[0], 0, CTRL_URB_RX_SIZE);
           ^~~~~~
   drivers/net/usb/hso.c:2078:3: warning: Call to function 'sprintf' is 
insecure as it does not provide bounding of the memory buffer or security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'sprintf_s' in 
case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   sprintf(port_dev, "%s", dev2net(hso_dev)->net->name);
                   ^~~~~~~
   drivers/net/usb/hso.c:2078:3: note: Call to function 'sprintf' is insecure 
as it does not provide bounding of the memory buffer or security checks 
introduced in the C11 standard. Replace with analogous functions that support 
length arguments or provides boundary checks such as 'sprintf_s' in case of C11
                   sprintf(port_dev, "%s", dev2net(hso_dev)->net->name);
                   ^~~~~~~
   drivers/net/usb/hso.c:2080:3: warning: Call to function 'sprintf' is 
insecure as it does not provide bounding of the memory buffer or security 
checks introduced in the C11 standard. Replace with analogous functions that 
support length arguments or provides boundary checks such as 'sprintf_s' in 
case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   sprintf(port_dev, "/dev/%s%d", tty_filename,

vim +505 drivers/net/usb/hso.c

72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  458  
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  459  /* Sysfs attribute */
7567d603b3f1c5e YueHaibing         2021-05-20  460  static ssize_t 
hsotype_show(struct device *dev,
7567d603b3f1c5e YueHaibing         2021-05-20  461                          
struct device_attribute *attr, char *buf)
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  462  {
1aec5bdfed91b50 Greg Kroah-Hartman 2009-04-30  463      struct hso_device 
*hso_dev = dev_get_drvdata(dev);
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  464      char *port_name;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  465  
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  466      if (!hso_dev)
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  467              return 0;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  468  
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  469      switch 
(hso_dev->port_spec & HSO_PORT_MASK) {
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  470      case HSO_PORT_CONTROL:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  471              port_name = 
"Control";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  472              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  473      case HSO_PORT_APP:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  474              port_name = 
"Application";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  475              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  476      case HSO_PORT_APP2:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  477              port_name = 
"Application2";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  478              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  479      case HSO_PORT_GPS:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  480              port_name = 
"GPS";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  481              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  482      case 
HSO_PORT_GPS_CONTROL:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  483              port_name = 
"GPS Control";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  484              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  485      case HSO_PORT_PCSC:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  486              port_name = 
"PCSC";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  487              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  488      case HSO_PORT_DIAG:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  489              port_name = 
"Diagnostic";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  490              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  491      case HSO_PORT_DIAG2:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  492              port_name = 
"Diagnostic2";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  493              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  494      case HSO_PORT_MODEM:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  495              port_name = 
"Modem";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  496              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  497      case HSO_PORT_NETWORK:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  498              port_name = 
"Network";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  499              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  500      default:
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  501              port_name = 
"Unknown";
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  502              break;
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  503      }
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  504  
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13 @505      return sprintf(buf, 
"%s\n", port_name);
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  506  }
7567d603b3f1c5e YueHaibing         2021-05-20  507  static 
DEVICE_ATTR_RO(hsotype);
72dc1c096c7051a Greg Kroah-Hartman 2008-05-13  508  

:::::: The code at line 505 was first introduced by commit
:::::: 72dc1c096c7051a48ab1dbb12f71976656b55eb5 HSO: add option hso driver

:::::: TO: Greg Kroah-Hartman <[email protected]>
:::::: CC: Jeff Garzik <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to