Mercurial > illumos > illumos-gate
changeset 14027:ceba83929df4
3771 kmdb hangs when reading an invalid address
Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Reviewed by: Jeff Biseda <jbiseda@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: Albert Lee <trisk@nexenta.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Garrett D'Amore <garrett@damore.org>
author | Jeremy Jones <jeremy@delphix.com> |
---|---|
date | Fri, 17 May 2013 11:06:02 -0800 |
parents | 2031dcee618b |
children | bcbb822da4dd |
files | usr/src/cmd/mdb/common/kmdb/kmdb_kvm.c |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/mdb/common/kmdb/kmdb_kvm.c Wed May 08 16:39:56 2013 -0400 +++ b/usr/src/cmd/mdb/common/kmdb/kmdb_kvm.c Fri May 17 11:06:02 2013 -0800 @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013 by Delphix. All rights reserved. */ #include <kmdb/kmdb_kvm.h> @@ -137,7 +138,12 @@ kmt_rw(mdb_tgt_t *t, void *buf, size_t nbytes, uint64_t addr, ssize_t (*rw)(void *, size_t, uint64_t)) { - size_t n, ndone, chunksz; + /* + * chunksz needs to be volatile because of the use of setjmp() in this + * function. + */ + volatile size_t chunksz; + size_t n, ndone; jmp_buf *oldpcb = NULL; jmp_buf pcb; ssize_t res;