diff options
Diffstat (limited to 'tapset')
-rw-r--r-- | tapset/ChangeLog | 5 | ||||
-rw-r--r-- | tapset/vfs.stp | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog index ea287395..8ab95e7b 100644 --- a/tapset/ChangeLog +++ b/tapset/ChangeLog @@ -1,3 +1,8 @@ +2006-12-18 Frank Ch. Eigler <fche@elastic.org> + + * vfs.stp (ppos_pos): Protect contents with deref(), though + this blocks operation on i686 due to bug #3079. + 2006-12-13 Mike Mason <mmlnx@us.ibm.com> * scheduler.stp: fixed last line in scheduler.ctxswitch to diff --git a/tapset/vfs.stp b/tapset/vfs.stp index 16c51b17..b121d5b9 100644 --- a/tapset/vfs.stp +++ b/tapset/vfs.stp @@ -37,7 +37,12 @@ function __find_bdevname(dev, bdev) function ppos_pos:long (ppos:long) %{ /* pure */ loff_t *ppos = (loff_t *)(long)THIS->ppos; - THIS->__retvalue = (int64_t)*ppos; + /* XXX: but see bug #3079 */ + THIS->__retvalue = (int64_t) deref (sizeof(loff_t), ppos); + if (0) { +deref_fault: + CONTEXT->last_error = "pointer dereference fault"; + } %} function __page_ino:long (page:long) %{ /* pure */ |