---
 nvbios/bios.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/nvbios/bios.c b/nvbios/bios.c
index fac3840..ca8c54e 100644
--- a/nvbios/bios.c
+++ b/nvbios/bios.c
@@ -276,9 +276,14 @@ int envy_bios_parse (struct envy_bios *bios) {
                                        pos += 4;
                                        if (entry.type > 1)
                                                ENVY_BIOS_WARN("Unknown HWEA 
entry type %d\n", entry.type);
+                                       if (entry.len == (uint32_t)-1) {
+                                               /* Maybe this should be treated 
as for length == 0 */
+                                               ENVY_BIOS_ERR("Invalid HWEA 
entry length %d\n", entry.len);
+                                               break;
+                                       }
                                } else {
                                        entry.base = word & 0x1fffffc;
-                                       entry.type = word&3;
+                                       entry.type = word & 3;
                                        switch (entry.type) {
                                                case 0:
                                                case 1:
-- 
1.9.1

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to