NetBSD Problem Report #49411
From www@NetBSD.org Sun Nov 23 10:31:00 2014
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK))
by mollari.NetBSD.org (Postfix) with ESMTPS id 03225A6605
for <gnats-bugs@gnats.NetBSD.org>; Sun, 23 Nov 2014 10:31:00 +0000 (UTC)
Message-Id: <20141123103058.CB14CA66D1@mollari.NetBSD.org>
Date: Sun, 23 Nov 2014 10:30:58 +0000 (UTC)
From: qfh02545@nifty.com
Reply-To: qfh02545@nifty.com
To: gnats-bugs@NetBSD.org
Subject: Pass invalid length to hdmi_infoframe_header_pack() in hdmi.h
X-Send-Pr-Version: www-1.0
>Number: 49411
>Category: kern
>Synopsis: Pass invalid length to hdmi_infoframe_header_pack() in hdmi.h
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: riastradh
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Nov 23 10:35:01 +0000 2014
>Closed-Date: Sun Nov 23 16:43:46 +0000 2014
>Last-Modified: Sun Jan 11 06:00:00 +0000 2015
>Originator: HITOSHI Osada
>Release: NetBSD 7.99.1
>Organization:
>Environment:
NetBSD amd785g 7.99.1 NetBSD 7.99.1 (AMD785GKMS) #0: Sun Nov 23 17:51:09 JST 2014 root@amd785g:/tmp/obj/sys/arch/amd64/compile/AMD785GKMS amd64
>Description:
The second argument of hdmi_infoframe_header_pack() should be 'infoframe body length', not 'infoframe packet length'.
>How-To-Repeat:
>Fix:
Index: hdmi.h
===================================================================
RCS file: /cvsroot/src/sys/external/bsd/drm2/include/linux/hdmi.h,v
retrieving revision 1.2
diff -u -r1.2 hdmi.h
--- hdmi.h 16 Jul 2014 20:59:58 -0000 1.2
+++ hdmi.h 23 Nov 2014 10:10:47 -0000
@@ -260,7 +260,7 @@
KASSERT(frame->header.length == HDMI_AUDIO_INFOFRAME_SIZE);
- ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
+ ret = hdmi_infoframe_header_pack(&frame->header, frame->header.length, p, size);
if (ret < 0)
return ret;
p += HDMI_INFOFRAME_HEADER_SIZE;
@@ -335,7 +335,7 @@
KASSERT(frame->header.length == HDMI_AVI_INFOFRAME_SIZE);
- ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
+ ret = hdmi_infoframe_header_pack(&frame->header, frame->header.length, p, size);
if (ret < 0)
return ret;
p += HDMI_INFOFRAME_HEADER_SIZE;
@@ -424,7 +424,7 @@
KASSERT(frame->header.length == HDMI_SPD_INFOFRAME_SIZE);
- ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
+ ret = hdmi_infoframe_header_pack(&frame->header, frame->header.length, p, size);
if (ret < 0)
return ret;
p += HDMI_INFOFRAME_HEADER_SIZE;
@@ -490,7 +490,7 @@
if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF)
length += 1;
- ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
+ ret = hdmi_infoframe_header_pack(&frame->header, frame->header.length, p, size);
if (ret < 0)
return ret;
p += HDMI_INFOFRAME_HEADER_SIZE;
>Release-Note:
>Audit-Trail:
From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/49411 CVS commit: src/sys/external/bsd/drm2/include/linux
Date: Sun, 23 Nov 2014 16:07:10 +0000
Module Name: src
Committed By: riastradh
Date: Sun Nov 23 16:07:10 UTC 2014
Modified Files:
src/sys/external/bsd/drm2/include/linux: hdmi.h
Log Message:
Use correct length for hdmi_infoframe_header_pack in <linux/hdmi.h>.
Fixes PR kern/49411.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/include/linux/hdmi.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/49411 CVS commit: src/sys/external/bsd/drm2/include/linux
Date: Sun, 23 Nov 2014 16:16:29 +0000
Module Name: src
Committed By: riastradh
Date: Sun Nov 23 16:16:29 UTC 2014
Modified Files:
src/sys/external/bsd/drm2/include/linux: hdmi.h
Log Message:
Back out previous, fix PR kern/49411 correctly.
frame->header.length is not initialized in the vendor packet case.
Instead, make hdmi_infoframe_header_pack take the packet length and
subtract the size of the header when packing the header.
(Could make it take the payload length instead, but for callers it is
more convenient to have a name for the whole packet length.)
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/include/linux/hdmi.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Responsible-Changed-From-To: kern-bug-people->riastradh
Responsible-Changed-By: riastradh@NetBSD.org
Responsible-Changed-When: Sun, 23 Nov 2014 16:43:46 +0000
Responsible-Changed-Why:
mine
State-Changed-From-To: open->closed
State-Changed-By: riastradh@NetBSD.org
State-Changed-When: Sun, 23 Nov 2014 16:43:46 +0000
State-Changed-Why:
fixed
From: HITOSHI Osada <qfh02545@nifty.com>
To: gnats-bugs@NetBSD.org
Cc: riastradh@NetBSD.org, kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
qfh02545@nifty.com
Subject: Re: Re: kern/49411 (Pass invalid length to hdmi_infoframe_header_pack() in hdmi.h)
Date: Mon, 24 Nov 2014 08:53:54 +0900 (JST)
hdmi.h rev 1.4 does not fix my problem. ('DRM error in r600_hdmi_setmode: fail
ed to pack AVI infoframe: -28')
Please remove '(size - length < HDMI_INFOFRAME_HEADER_SIZE)' in hdmi_infoframe
_header_pack().
----- Original Message -----
>From: riastradh@NetBSD.org
>To: riastradh@NetBSD.org, kern-bug-people@netbsd.org, netbsd-bugs@netbsd.org,
> gnats-admin@netbsd.org, riastradh@NetBSD.org, qfh02545@nifty.com
>Subject: Re: kern/49411 (Pass invalid length to hdmi_infoframe_header_pack()
in hdmi.h)
>Cc:
>Date: Sun, 23 Nov 2014 16:43:46 +0000 (UTC)
>
>
>Synopsis: Pass invalid length to hdmi_infoframe_header_pack() in hdmi.h
>
>Responsible-Changed-From-To: kern-bug-people->riastradh
>Responsible-Changed-By: riastradh@NetBSD.org
>Responsible-Changed-When: Sun, 23 Nov 2014 16:43:46 +0000
>Responsible-Changed-Why:
>mine
>
>
>State-Changed-From-To: open->closed
>State-Changed-By: riastradh@NetBSD.org
>State-Changed-When: Sun, 23 Nov 2014 16:43:46 +0000
>State-Changed-Why:
>fixed
>
>
>
From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/49411 CVS commit: src/sys/external/bsd/drm2/include/linux
Date: Mon, 24 Nov 2014 01:27:07 +0000
Module Name: src
Committed By: riastradh
Date: Mon Nov 24 01:27:07 UTC 2014
Modified Files:
src/sys/external/bsd/drm2/include/linux: hdmi.h
Log Message:
Fix bounds checking in hdmi_infoframe_header_pack (PR kern/49411).
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/include/linux/hdmi.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Soren Jacobsen" <snj@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/49411 CVS commit: [netbsd-7] src
Date: Sun, 11 Jan 2015 05:59:18 +0000
Module Name: src
Committed By: snj
Date: Sun Jan 11 05:59:18 UTC 2015
Modified Files:
src/distrib/sets/lists/modules [netbsd-7]: md.amd64 md.i386
src/sys/dev/ic [netbsd-7]: pcdisplayvar.h vgavar.h
src/sys/external/bsd/drm/dist/bsd-core [netbsd-7]: drm_drv.c
src/sys/external/bsd/drm2/dist/drm [netbsd-7]: drm_stub.c
src/sys/external/bsd/drm2/dist/drm/i915 [netbsd-7]: i915_drv.h
src/sys/external/bsd/drm2/dist/drm/radeon [netbsd-7]: cik.c ni.c si.c
src/sys/external/bsd/drm2/dist/include/drm [netbsd-7]: drmP.h
src/sys/external/bsd/drm2/drm [netbsd-7]: drm_drv.c drm_module.c
drm_vm.c files.drmkms
src/sys/external/bsd/drm2/i915drm [netbsd-7]: files.i915drmkms
i915_module.c
src/sys/external/bsd/drm2/include/linux [netbsd-7]: hdmi.h module.h
moduleparam.h pci.h
src/sys/external/bsd/drm2/linux [netbsd-7]: linux_module.c
src/sys/external/bsd/drm2/nouveau [netbsd-7]: files.nouveau
nouveau_module.c
src/sys/external/bsd/drm2/pci [netbsd-7]: drm_pci.c drm_pci_module.c
src/sys/external/bsd/drm2/radeon [netbsd-7]: radeon_module.c
src/sys/modules [netbsd-7]: Makefile
src/sys/modules/drmkms [netbsd-7]: Makefile
src/sys/modules/drmkms_linux [netbsd-7]: Makefile
src/sys/modules/i915drmkms [netbsd-7]: Makefile
Added Files:
src/sys/external/bsd/drm2/drm [netbsd-7]: drm_sysctl.c
src/sys/external/bsd/drm2/include/drm [netbsd-7]: drm_sysctl.h
src/sys/external/bsd/drm2/ttm [netbsd-7]: files.ttm
Removed Files:
src/sys/modules/drm2pci [netbsd-7]: Makefile
Log Message:
Pull up following revision(s) (requested by chs in ticket #401):
distrib/sets/lists/modules/md.amd64: revisions 1.46, 1.47 via patch
distrib/sets/lists/modules/md.i386: revisions 1.49, 1.50
sys/dev/ic/pcdisplayvar.h: revision 1.20
sys/dev/ic/vgavar.h: revision 1.32
sys/external/bsd/drm/dist/bsd-core/drm_drv.c: revision 1.26
sys/external/bsd/drm2/dist/drm/drm_agpsupport.c: revisions 1.5, 1.6
sys/external/bsd/drm2/dist/drm/drm_pci.c: revisions 1.4, 1.5
sys/external/bsd/drm2/dist/drm/drm_stub.c: revisions 1.6-1.8
sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.11
sys/external/bsd/drm2/dist/drm/radeon/cik.c: revision 1.3
sys/external/bsd/drm2/dist/drm/radeon/ni.c: revision 1.3
sys/external/bsd/drm2/dist/drm/radeon/si.c: revision 1.3
sys/external/bsd/drm2/dist/include/drm/drmP.h: revisions 1.8, 1.9
sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h: revisions 1.3, 1.4
sys/external/bsd/drm2/drm/drm_drv.c: revision 1.11
sys/external/bsd/drm2/drm/drm_module.c: revision 1.9
sys/external/bsd/drm2/drm/drm_sysctl.c: revisions 1.1-1.4
sys/external/bsd/drm2/drm/drm_vm.c: revision 1.7
sys/external/bsd/drm2/drm/files.drmkms: revisions 1.8, 1.9
sys/external/bsd/drm2/i915drm/files.i915drmkms: revision 1.9
sys/external/bsd/drm2/i915drm/i915_module.c: revisions 1.4, 1.5
sys/external/bsd/drm2/include/drm/drm_sysctl.h: revisions 1.1, 1.2
sys/external/bsd/drm2/include/linux/hdmi.h: revisions 1.3-1.5
sys/external/bsd/drm2/include/linux/module.h: revision 1.5
sys/external/bsd/drm2/include/linux/moduleparam.h: revisions 1.3, 1.4
sys/external/bsd/drm2/include/linux/pci.h: revision 1.11
sys/external/bsd/drm2/linux/linux_module.c: revision 1.5
sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.4
sys/external/bsd/drm2/nouveau/nouveau_module.c: revision 1.3
sys/external/bsd/drm2/pci/drm_pci.c: revision 1.8
sys/external/bsd/drm2/pci/drm_pci_module.c: revision 1.3
sys/external/bsd/drm2/radeon/radeon_module.c: revision 1.3
sys/external/bsd/drm2/ttm/files.ttm: revision 1.1
sys/modules/drm2pci/Makefile: file removal
sys/modules/drmkms/Makefile: revisions 1.4-1.7
sys/modules/drmkms_linux/Makefile: revision 1.5
sys/modules/drmkms_pci/Makefile: revisions 1.3, 1.4
sys/modules/i915drmkms/Makefile: revisions 1.5-1.7
Split drm ttm config into a separate file.
--
Fix module build of drmkms_linux.
--
Remove vestigial drm2pci module, replaced by drmkms_pci.
--
fix the module class.
--
add the drmkms modules
--
make a drm_agp_destroy() function to resolve the circular dependency between
drmkms and drmkms_pci
--
finalize the idr code.
--
add drm_agp_destroy
--
fix drmkms module path for xen.
--
fix build failure.
/tmp/bracket/build/2014.11.10.22.43.46-i386/src/sys/external/bsd/drm2/include/linux/pci.h:36:20: fatal error: acpica.h: No such file or directory
--
make this work: add agpsupport and sysctl code
--
move agpsupport to drmkms to avoid circular dependencies.
--
turn on dynamic ldscript creation to handle link set symbol definitions
used in the automatic sysctl creation.
--
Add __link_set based code to automatically convert the linux module parameters
into sysctls.
--
this module needs MKLDSCRIPT too now
--
more _KERNEL_OPT
--
prettify and add to all the modules that have it.
--
fix description setting.
--
Adjust flags to allow building with clang.
--
Fix build with clang.
--
Drop casts in favour of expressions that actually give the right
pointer.
--
Move all PCI/AGP code back to drmkms_pci module where it belongs.
--
Use correct length for hdmi_infoframe_header_pack in <linux/hdmi.h>.
Fixes PR kern/49411.
--
Back out previous, fix PR kern/49411 correctly.
frame->header.length is not initialized in the vendor packet case.
Instead, make hdmi_infoframe_header_pack take the packet length and
subtract the size of the header when packing the header.
(Could make it take the payload length instead, but for callers it is
more convenient to have a name for the whole packet length.)
--
Fix bounds checking in hdmi_infoframe_header_pack (PR kern/49411).
--
Trivial build fix for no options SYSCTL_INCLUDE_DESCR case, to
avoid -Werror.
OK christos@ and riastradh@
--
fix debugging compilation (ALL kernel)
--
nouveau_nv50_fence.c needs -Wno-shadow.
--
fix a confusion between dev_t and devmajor_t, and include the primary
minor when calling makedev().
To generate a diff of this commit:
cvs rdiff -u -r1.41.2.1 -r1.41.2.2 src/distrib/sets/lists/modules/md.amd64
cvs rdiff -u -r1.46 -r1.46.2.1 src/distrib/sets/lists/modules/md.i386
cvs rdiff -u -r1.19 -r1.19.38.1 src/sys/dev/ic/pcdisplayvar.h
cvs rdiff -u -r1.30 -r1.30.12.1 src/sys/dev/ic/vgavar.h
cvs rdiff -u -r1.25 -r1.25.2.1 \
src/sys/external/bsd/drm/dist/bsd-core/drm_drv.c
cvs rdiff -u -r1.5 -r1.5.2.1 src/sys/external/bsd/drm2/dist/drm/drm_stub.c
cvs rdiff -u -r1.7.2.3 -r1.7.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c \
src/sys/external/bsd/drm2/dist/drm/radeon/ni.c \
src/sys/external/bsd/drm2/dist/drm/radeon/si.c
cvs rdiff -u -r1.7 -r1.7.2.1 \
src/sys/external/bsd/drm2/dist/include/drm/drmP.h
cvs rdiff -u -r1.9.2.1 -r1.9.2.2 src/sys/external/bsd/drm2/drm/drm_drv.c
cvs rdiff -u -r1.7.2.1 -r1.7.2.2 src/sys/external/bsd/drm2/drm/drm_module.c
cvs rdiff -u -r0 -r1.4.4.2 src/sys/external/bsd/drm2/drm/drm_sysctl.c
cvs rdiff -u -r1.5.2.1 -r1.5.2.2 src/sys/external/bsd/drm2/drm/drm_vm.c
cvs rdiff -u -r1.7 -r1.7.2.1 src/sys/external/bsd/drm2/drm/files.drmkms
cvs rdiff -u -r1.5.2.2 -r1.5.2.3 \
src/sys/external/bsd/drm2/i915drm/files.i915drmkms
cvs rdiff -u -r1.3 -r1.3.2.1 src/sys/external/bsd/drm2/i915drm/i915_module.c
cvs rdiff -u -r0 -r1.2.4.2 src/sys/external/bsd/drm2/include/drm/drm_sysctl.h
cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/external/bsd/drm2/include/linux/hdmi.h
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/external/bsd/drm2/include/linux/module.h
cvs rdiff -u -r1.2 -r1.2.8.1 \
src/sys/external/bsd/drm2/include/linux/moduleparam.h
cvs rdiff -u -r1.7.2.3 -r1.7.2.4 \
src/sys/external/bsd/drm2/include/linux/pci.h
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/external/bsd/drm2/linux/linux_module.c
cvs rdiff -u -r1.2.4.1 -r1.2.4.2 \
src/sys/external/bsd/drm2/nouveau/files.nouveau
cvs rdiff -u -r1.1.4.1 -r1.1.4.2 \
src/sys/external/bsd/drm2/nouveau/nouveau_module.c
cvs rdiff -u -r1.6 -r1.6.2.1 src/sys/external/bsd/drm2/pci/drm_pci.c
cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/external/bsd/drm2/pci/drm_pci_module.c
cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/external/bsd/drm2/radeon/radeon_module.c
cvs rdiff -u -r0 -r1.1.4.2 src/sys/external/bsd/drm2/ttm/files.ttm
cvs rdiff -u -r1.140 -r1.140.2.1 src/sys/modules/Makefile
cvs rdiff -u -r1.2 -r0 src/sys/modules/drm2pci/Makefile
cvs rdiff -u -r1.3 -r1.3.2.1 src/sys/modules/drmkms/Makefile
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/modules/drmkms_linux/Makefile
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/modules/i915drmkms/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.