[Nouveau] [Bug 16624] New: invalid pointer past to RRChangeOutputProperty
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sat Jul 5 22:43:23 PDT 2008
http://bugs.freedesktop.org/show_bug.cgi?id=16624
Summary: invalid pointer past to RRChangeOutputProperty
Product: xorg
Version: git
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: medium
Component: Driver/nouveau
AssignedTo: nouveau at lists.freedesktop.org
ReportedBy: obiwan at mailmij.org
QAContact: xorg-team at lists.x.org
CC: keithp at keithp.com
Created an attachment (id=17547)
--> (http://bugs.freedesktop.org/attachment.cgi?id=17547)
proposed patch for the issue
In nv_output:
error = RRChangeOutputProperty(output->randr_output, dithering_atom,
XA_INTEGER, 32, PropModeReplace, 1,
&nv_output->dithering,FALSE, FALSE);
&nv_output->dithering is a Boolean, but the property is set up as int32. On big
endian systems, this results in the property set being 0x1000000 instead of
0x1. This currently fails the range check (it can only be 1 or 0). Leading to
an error returned above which made me notice the issue.
Actually I think it may be an idea if X would check the type of the pointer
passed to RRChangeOutputProperty and return a better error if it is not equal
to the type (this problem would go unnoticed without the range check in
nv_output's set_property function), thus I add a cc to keithp about that.
To fix the problem in nouveau, either the property should be set up as Bool, or
we need to do an explicit cast. I provide a patch for the latter (because I am
not sure if we want more than 2 states for this property in the future). Let me
know if the former is preferred.
Cheers,
danny
--
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the Nouveau
mailing list