diff options
author | Alexey Dokuchaev <danfe@FreeBSD.org> | 2012-05-10 11:22:00 +0000 |
---|---|---|
committer | Alexey Dokuchaev <danfe@FreeBSD.org> | 2012-05-10 11:22:00 +0000 |
commit | dbacad32aebe2ff303e5f5e4553e4b4346727a96 (patch) | |
tree | e7b8f6ded5653119d9b5a80a97c9ebe5ee83c8dc /x11/nvidia-driver | |
parent | fc40bb99c84394f7c6ab94609db63c83713f7ef9 (diff) | |
download | ports-dbacad32aebe2ff303e5f5e4553e4b4346727a96.tar.gz ports-dbacad32aebe2ff303e5f5e4553e4b4346727a96.zip |
Notes
Diffstat (limited to 'x11/nvidia-driver')
-rw-r--r-- | x11/nvidia-driver/Makefile | 4 | ||||
-rw-r--r-- | x11/nvidia-driver/files/security-patch-CVE-2012-0946 | 28 |
2 files changed, 32 insertions, 0 deletions
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile index e084ad371d0f..4fb0ec1b851e 100644 --- a/x11/nvidia-driver/Makefile +++ b/x11/nvidia-driver/Makefile @@ -61,6 +61,10 @@ MASTER_SITE_SUBDIR= freebsd/${DISTVERSION} ONLY_FOR_ARCHS= i386 .endif +.if ${NVVERSION} <= 1905300 +EXTRA_PATCHES= ${PATCHDIR}/security-patch-CVE-2012-0946 +.endif + OPTIONS= FREEBSD_AGP "Use FreeBSD AGP GART driver" off \ ACPI_PM "Enable support for ACPI Power Management" off \ LINUX "Build with support for Linux compatibility" on diff --git a/x11/nvidia-driver/files/security-patch-CVE-2012-0946 b/x11/nvidia-driver/files/security-patch-CVE-2012-0946 new file mode 100644 index 000000000000..86e7dce9936b --- /dev/null +++ b/x11/nvidia-driver/files/security-patch-CVE-2012-0946 @@ -0,0 +1,28 @@ +--- src/nv.h.orig 2011-07-14 02:51:53.000000000 +0800 ++++ src/nv.h 2012-05-10 18:15:51.000000000 +0800 +@@ -364,6 +364,14 @@ + ((offset) >= (nv)->agp.address) && \ + (((offset) + ((length)-1)) <= (nv)->agp.address + ((nv)->agp.size-1))) + ++#define IS_REG_RANGE_WITHIN_MAPPING(nv, roffset, rlength, moffset, mlength) \ ++ (((moffset) <= ((nv)->regs->address + ((roffset) + (rlength)-1))) &&\ ++ (((moffset) + (mlength)-1) >= ((nv)->regs->address + (roffset)))) ++ ++#define IS_BLACKLISTED_REG_OFFSET(nv, offset, length) \ ++ ((IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1000, 0x1000, offset, length)) ||\ ++ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length))) ++ + /* duplicated from nvos.h for external builds */ + #ifndef NVOS_AGP_CONFIG_DISABLE_AGP + # define NVOS_AGP_CONFIG_DISABLE_AGP (0x00000000) +--- src/nvidia_subr.c.orig 2012-05-10 18:09:01.000000000 +0800 ++++ src/nvidia_subr.c 2012-05-10 18:13:41.000000000 +0800 +@@ -1464,6 +1464,8 @@ + } + + if (IS_REG_OFFSET(nv, offset, PAGE_SIZE)) { ++ if (IS_BLACKLISTED_REG_OFFSET(nv, offset, PAGE_SIZE)) ++ return -1; + *physical = offset; + return 0; + } |