Author: takawata
Date: Mon Jul  9 09:38:53 2012
New Revision: 238288
URL: http://svn.freebsd.org/changeset/base/238288

Log:
  Add range and table revision checking to avoid abend.
  
  PR:bin/169707
  Submitted by:Dan Lukes <d...@obluda.cz>
  MFC after:3 days.

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==============================================================================
--- head/usr.sbin/acpi/acpidump/acpi.c  Mon Jul  9 09:24:46 2012        
(r238287)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Mon Jul  9 09:38:53 2012        
(r238288)
@@ -654,16 +654,24 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
                printf(END_COMMENT);
                return;
        }
+       if(sdp->Revision == 1){
+               printf("\tOLD TCPA spec log found. Dumping not supported.\n");
+               printf(END_COMMENT);
+               return;
+       }
 
        vaddr = (unsigned char *)acpi_map_physical(paddr, len);
        vend = vaddr + len;
 
        while (vaddr != NULL) {
-               if (vaddr + sizeof(struct TCPAevent) >= vend)
+               if ((vaddr + sizeof(struct TCPAevent) >= vend)||
+                   (vaddr + sizeof(struct TCPAevent) < vaddr))
                        break;
                event = (struct TCPAevent *)(void *)vaddr;
                if (vaddr + event->event_size >= vend)
                        break;
+               if (vaddr + event->event_size < vaddr)
+                       break;
                if (event->event_type == 0 && event->event_size == 0)
                        break;
 #if 0
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to