From owner-p4-projects@FreeBSD.ORG Mon Sep 26 23:52:24 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DEACC16A421; Mon, 26 Sep 2005 23:52:23 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9C34F16A41F for ; Mon, 26 Sep 2005 23:52:23 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5F7F743D4C for ; Mon, 26 Sep 2005 23:52:23 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8QNqN0J036505 for ; Mon, 26 Sep 2005 23:52:23 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8QNqNWQ036502 for perforce@freebsd.org; Mon, 26 Sep 2005 23:52:23 GMT (envelope-from peter@freebsd.org) Date: Mon, 26 Sep 2005 23:52:23 GMT Message-Id: <200509262352.j8QNqNWQ036502@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 84320 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Sep 2005 23:52:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=84320 Change 84320 by peter@peter_melody on 2005/09/26 23:51:30 Mask off user supplied upper bits for %dr6 and %dr7 Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#140 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/machdep.c#140 (text+ko) ==== @@ -1731,6 +1731,13 @@ i++, mask1 <<= 2, mask2 <<= 2) if ((dbregs->dr[7] & mask1) == mask2) return (EINVAL); + /* + * Bits 5-12 and 32-63 are reserved for dr6, and bits 10-15 and + * 32-63 of dr7 are reserved. However, bits 32-63 cause a GPF. + */ + if ((dbregs->dr[6] & 0xffffffff00000000ul) != 0 || + (dbregs->dr[7] & 0xffffffff00000000ul) != 0) + return (EINVAL); pcb = td->td_pcb;