Message ID | 20200420120705.89691-3-szymon.janc@codecoup.pl (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Luiz Von Dentz |
Headers | show |
Series | [1/4] android: Fix build with GCC 10 | expand |
On Mon, 2020-04-20 at 14:07 +0200, Szymon Janc wrote: > This one is a false positive but since we never use more than > UINPUT_MAX_NAME_SIZE bytes of name we can silence GCC by reducing > size of source string. > > CC profiles/audio/bluetoothd-avctp.o > In function ‘uinput_create’, > inlined from ‘init_uinput’ at profiles/audio/avctp.c:1259:20: > profiles/audio/avctp.c:1188:3: error: ‘strncpy’ output may be truncated copying 79 bytes from a string of > length 248 [-Werror=stringop-truncation] > 1188 | strncpy(dev.name, name, UINPUT_MAX_NAME_SIZE); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: all warnings being treated as errors > --- > profiles/audio/avctp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/profiles/audio/avctp.c b/profiles/audio/avctp.c > index 37ffde9e7..058b44a8b 100644 > --- a/profiles/audio/avctp.c > +++ b/profiles/audio/avctp.c > @@ -1246,7 +1246,7 @@ static int uinput_create(struct btd_device *device, const char *name, > > static void init_uinput(struct avctp *session) > { > - char name[248 + 1]; > + char name[UINPUT_MAX_NAME_SIZE]; Should this be nul terminated? (UINPUT_MAX_NAME_SIZE + 1) ? > > device_get_name(session->device, name, sizeof(name)); > if (g_str_equal(name, "Nokia CK-20W")) {
Hi Brian, On Mon, Apr 20, 2020 at 9:44 AM Gix, Brian <brian.gix@intel.com> wrote: > > On Mon, 2020-04-20 at 14:07 +0200, Szymon Janc wrote: > > This one is a false positive but since we never use more than > > UINPUT_MAX_NAME_SIZE bytes of name we can silence GCC by reducing > > size of source string. > > > > CC profiles/audio/bluetoothd-avctp.o > > In function ‘uinput_create’, > > inlined from ‘init_uinput’ at profiles/audio/avctp.c:1259:20: > > profiles/audio/avctp.c:1188:3: error: ‘strncpy’ output may be truncated copying 79 bytes from a string of > > length 248 [-Werror=stringop-truncation] > > 1188 | strncpy(dev.name, name, UINPUT_MAX_NAME_SIZE); > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > cc1: all warnings being treated as errors > > --- > > profiles/audio/avctp.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/profiles/audio/avctp.c b/profiles/audio/avctp.c > > index 37ffde9e7..058b44a8b 100644 > > --- a/profiles/audio/avctp.c > > +++ b/profiles/audio/avctp.c > > @@ -1246,7 +1246,7 @@ static int uinput_create(struct btd_device *device, const char *name, > > > > static void init_uinput(struct avctp *session) > > { > > - char name[248 + 1]; > > + char name[UINPUT_MAX_NAME_SIZE]; > > Should this be nul terminated? (UINPUT_MAX_NAME_SIZE + 1) ? I guess not since that is send over to the kernel which accepts up to UINPUT_MAX_NAME_SIZE so if the name is exactly 248 then the kernel should be the one adding the NULL termination, if it doesn't then we need to truncate by doing name[247] = '\0'. > > > > device_get_name(session->device, name, sizeof(name)); > > if (g_str_equal(name, "Nokia CK-20W")) {
diff --git a/profiles/audio/avctp.c b/profiles/audio/avctp.c index 37ffde9e7..058b44a8b 100644 --- a/profiles/audio/avctp.c +++ b/profiles/audio/avctp.c @@ -1246,7 +1246,7 @@ static int uinput_create(struct btd_device *device, const char *name, static void init_uinput(struct avctp *session) { - char name[248 + 1]; + char name[UINPUT_MAX_NAME_SIZE]; device_get_name(session->device, name, sizeof(name)); if (g_str_equal(name, "Nokia CK-20W")) {