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

Tom Rhodes trhodes at FreeBSD.org
Mon Oct 13 08:01:10 PDT 2003


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


More information about the cvs-src mailing list