[PATCH libpciaccess 1/2] vgaarb: add a the trailing NULL character on read(vgaarb_fd)

Emil Velikov emil.l.velikov at gmail.com
Sun May 1 17:33:23 UTC 2016


Somewhat of an annual ping. Anyone, please ?

On 6 March 2015 at 20:09, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> Another humble ping. Can we get any comments on these two patches ?
>
> Thanks
> Emil
>
> On 27 February 2015 at 16:16, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> Humble ping ?
>>
>> On 23 February 2015 at 21:31, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>>> From: arsharma <ankitprasad.r.sharma at intel.com>
>>>
>>> Issue was spotted by Klocwork, and fixed by arsharma as part of
>>> Android-ia. Not 100% sure if the data read from /dev/vga_arbiter is not
>>> already null terminated, but making sure won't hurt either.
>>>
>>> [Emil Velikov: Split from larger patch, write commit message]
>>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>>> ---
>>>  src/common_vgaarb.c | 12 +++++++++---
>>>  1 file changed, 9 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/src/common_vgaarb.c b/src/common_vgaarb.c
>>> index 7a7d204..515275f 100644
>>> --- a/src/common_vgaarb.c
>>> +++ b/src/common_vgaarb.c
>>> @@ -126,7 +126,7 @@ int
>>>  pci_device_vgaarb_init(void)
>>>  {
>>>      struct pci_slot_match match;
>>> -    char buf[BUFSIZE];
>>> +    char buf[BUFSIZE + 1]; /* reading BUFSIZE characters, + 1 for NULL */
>>>      int ret, rsrc;
>>>
>>>      if (!pci_sys)
>>> @@ -140,6 +140,8 @@ pci_device_vgaarb_init(void)
>>>      if (ret <= 0)
>>>          return -1;
>>>
>>> +    buf[ret] = 0; /* ret will never be greater than BUFSIZE */
>>> +
>>>      memset(&match, 0xff, sizeof(match));
>>>      /* need to find the device to go back to and what it was decoding */
>>>      rsrc = parse_string_to_decodes_rsrc(buf, &pci_sys->vga_count, &match);
>>> @@ -226,7 +228,7 @@ int
>>>  pci_device_vgaarb_set_target(struct pci_device *dev)
>>>  {
>>>      int len;
>>> -    char buf[BUFSIZE];
>>> +    char buf[BUFSIZE + 1]; /* reading BUFSIZE characters, + 1 for NULL */
>>>      int ret;
>>>
>>>      if (!dev)
>>> @@ -245,6 +247,8 @@ pci_device_vgaarb_set_target(struct pci_device *dev)
>>>      if (ret <= 0)
>>>          return -1;
>>>
>>> +    buf[ret] = 0; /* ret will never be greater than BUFSIZE */
>>> +
>>>      dev->vgaarb_rsrc = parse_string_to_decodes_rsrc(buf, &pci_sys->vga_count, NULL);
>>>      pci_sys->vga_target = dev;
>>>      return 0;
>>> @@ -254,7 +258,7 @@ int
>>>  pci_device_vgaarb_decodes(int new_vgaarb_rsrc)
>>>  {
>>>      int len;
>>> -    char buf[BUFSIZE];
>>> +    char buf[BUFSIZE + 1]; /* reading BUFSIZE characters, + 1 for NULL */
>>>      int ret;
>>>      struct pci_device *dev = pci_sys->vga_target;
>>>
>>> @@ -272,6 +276,8 @@ pci_device_vgaarb_decodes(int new_vgaarb_rsrc)
>>>      if (ret <= 0)
>>>          return -1;
>>>
>>> +    buf[ret] = 0; /* ret will never be greater than BUFSIZE */
>>> +
>>>      parse_string_to_decodes_rsrc(buf, &pci_sys->vga_count, NULL);
>>>
>>>      return ret;
>>> --
>>> 2.3.0
>>>


More information about the xorg-devel mailing list