Re: cvs commit: src/sys/dev/pci pci_user.c

From: Tom Rhodes <trhodes_at_FreeBSD.org>
Date: Mon, 13 Oct 2003 11:00:39 -0400
On Sat, 11 Oct 2003 15:20:35 -0700 (PDT)
Stefan Esser <se_at_freebsd.org> wrote:

> se          2003/10/11 15:20:35 PDT
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/dev/pci          pci_user.c 
>   Log:
>   The code that was meant to test alignment of the register offset
>   parameter in the read and write case dereferenced an unitialized
>   pointer and can't possibly ever have catched an actual invalid
>   argument.
>   
>   This was apparently true for the read/write and getconf cases. The
>   latter does not even receive the paramter that is to be verified.
>   
>   I'm surprised that this did not cause kernel panics, but it seems
>   that the uninitialized local variable happens to contain data that
>   may be used as a pointer to memory that satisfies the test condition.
>   
>   Make the code work as intended by moving the test inside the switch
>   case where the pointer has been properly initialized.
>   
>   Since the read and write case shared just about all code (except
>   for the single call to PCIB_READ_CONFIG resp. PCIB_WRITE_CONFIG) I
>   have merged both cases.
>   
>   Noticed by:     trhodes_at_FreeBSD.org (Tom Rhodes)

Thank you!!

-- 
Tom Rhodes
Received on Mon Oct 13 2003 - 08:01:10 UTC