From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v2 2/2] vsprintf: Move space out of string literals in fourcc_string()
Date: Tue, 25 Jan 2022 03:23:52 +0800 [thread overview]
Message-ID: <202201250258.qVWkKB2I-lkp@intel.com> (raw)
In-Reply-To: <20220124144258.34120-2-andriy.shevchenko@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 5908 bytes --]
Hi Andy,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linux/master]
[also build test WARNING on linus/master v5.17-rc1 next-20220124]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/vsprintf-Fix-potential-unaligned-access/20220124-224420
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2c271fe77d52a0555161926c232cd5bc07178b39
config: arm-randconfig-r022-20220124 (https://download.01.org/0day-ci/archive/20220125/202201250258.qVWkKB2I-lkp(a)intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
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
# https://github.com/0day-ci/linux/commit/f1895edcabdc5dae0528ffff9c3cb665a937223d
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andy-Shevchenko/vsprintf-Fix-potential-unaligned-access/20220124-224420
git checkout f1895edcabdc5dae0528ffff9c3cb665a937223d
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
lib/vsprintf.c: In function 'va_format':
lib/vsprintf.c:1695:9: warning: function 'va_format' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
1695 | buf += vsnprintf(buf, end > buf ? end - buf : 0, va_fmt->fmt, va);
| ^~~
lib/vsprintf.c: In function 'fourcc_string':
lib/vsprintf.c:1794:13: error: implicit declaration of function 'stpcpy' [-Werror=implicit-function-declaration]
1794 | p = stpcpy(p, orig & BIT(31) ? "big-endian" : "little-endian");
| ^~~~~~
>> lib/vsprintf.c:1794:13: warning: incompatible implicit declaration of built-in function 'stpcpy' [-Wbuiltin-declaration-mismatch]
cc1: some warnings being treated as errors
vim +/stpcpy +1794 lib/vsprintf.c
1685
1686 static char *va_format(char *buf, char *end, struct va_format *va_fmt,
1687 struct printf_spec spec, const char *fmt)
1688 {
1689 va_list va;
1690
1691 if (check_pointer(&buf, end, va_fmt, spec))
1692 return buf;
1693
1694 va_copy(va, *va_fmt->va);
> 1695 buf += vsnprintf(buf, end > buf ? end - buf : 0, va_fmt->fmt, va);
1696 va_end(va);
1697
1698 return buf;
1699 }
1700
1701 static noinline_for_stack
1702 char *uuid_string(char *buf, char *end, const u8 *addr,
1703 struct printf_spec spec, const char *fmt)
1704 {
1705 char uuid[UUID_STRING_LEN + 1];
1706 char *p = uuid;
1707 int i;
1708 const u8 *index = uuid_index;
1709 bool uc = false;
1710
1711 if (check_pointer(&buf, end, addr, spec))
1712 return buf;
1713
1714 switch (*(++fmt)) {
1715 case 'L':
1716 uc = true;
1717 fallthrough;
1718 case 'l':
1719 index = guid_index;
1720 break;
1721 case 'B':
1722 uc = true;
1723 break;
1724 }
1725
1726 for (i = 0; i < 16; i++) {
1727 if (uc)
1728 p = hex_byte_pack_upper(p, addr[index[i]]);
1729 else
1730 p = hex_byte_pack(p, addr[index[i]]);
1731 switch (i) {
1732 case 3:
1733 case 5:
1734 case 7:
1735 case 9:
1736 *p++ = '-';
1737 break;
1738 }
1739 }
1740
1741 *p = 0;
1742
1743 return string_nocheck(buf, end, uuid, spec);
1744 }
1745
1746 static noinline_for_stack
1747 char *netdev_bits(char *buf, char *end, const void *addr,
1748 struct printf_spec spec, const char *fmt)
1749 {
1750 unsigned long long num;
1751 int size;
1752
1753 if (check_pointer(&buf, end, addr, spec))
1754 return buf;
1755
1756 switch (fmt[1]) {
1757 case 'F':
1758 num = *(const netdev_features_t *)addr;
1759 size = sizeof(netdev_features_t);
1760 break;
1761 default:
1762 return error_string(buf, end, "(%pN?)", spec);
1763 }
1764
1765 return special_hex_number(buf, end, num, size);
1766 }
1767
1768 static noinline_for_stack
1769 char *fourcc_string(char *buf, char *end, const u32 *fourcc,
1770 struct printf_spec spec, const char *fmt)
1771 {
1772 char output[sizeof("0123 little-endian (0x01234567)")];
1773 char *p = output;
1774 unsigned int i;
1775 u32 orig, val;
1776
1777 if (fmt[1] != 'c' || fmt[2] != 'c')
1778 return error_string(buf, end, "(%p4?)", spec);
1779
1780 if (check_pointer(&buf, end, fourcc, spec))
1781 return buf;
1782
1783 orig = get_unaligned(fourcc);
1784 val = orig & ~BIT(31);
1785
1786 for (i = 0; i < sizeof(u32); i++) {
1787 unsigned char c = val >> (i * 8);
1788
1789 /* Print non-control ASCII characters as-is, dot otherwise */
1790 *p++ = isascii(c) && isprint(c) ? c : '.';
1791 }
1792
1793 *p++ = ' ';
> 1794 p = stpcpy(p, orig & BIT(31) ? "big-endian" : "little-endian");
1795
1796 *p++ = ' ';
1797 *p++ = '(';
1798 p = special_hex_number(p, output + sizeof(output) - 2, orig, sizeof(u32));
1799 *p++ = ')';
1800 *p = '\0';
1801
1802 return string(buf, end, output, spec);
1803 }
1804
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
prev parent reply other threads:[~2022-01-24 19:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-24 14:42 [PATCH v2 1/2] vsprintf: Fix potential unaligned access Andy Shevchenko
2022-01-24 14:42 ` [PATCH v2 2/2] vsprintf: Move space out of string literals in fourcc_string() Andy Shevchenko
2022-01-24 19:23 ` kernel test robot
2022-01-24 19:23 ` kernel test robot
2022-01-24 19:23 ` kernel test robot
2022-01-24 19:23 ` kernel test robot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202201250258.qVWkKB2I-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.