From 2cdc24e4ad4d36d08c4d3ea54600823655aeab9c Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Thu, 28 May 2009 12:34:03 +0000 Subject: [PATCH] Fix two instances of handing wrong vnodes to the next layer in attribute_overlay. The target vnode in link and the toDir vnode in rename were passed directly, meaning that an attribute_overlay vnode was handed to the next layer causing crashes when moving/renaming a file on ISO-only CDs for example. Fixes #3885. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30893 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../layers/attribute_overlay/attribute_overlay.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp b/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp index ba90a6c6a9..d6fff9c355 100644 --- a/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp +++ b/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp @@ -1282,7 +1282,8 @@ static status_t overlay_link(fs_volume *volume, fs_vnode *vnode, const char *name, fs_vnode *target) { - OVERLAY_CALL(link, name, target) + OverlayInode *targetNode = (OverlayInode *)target->private_node; + OVERLAY_CALL(link, name, targetNode->SuperVnode()) return B_UNSUPPORTED; } @@ -1299,7 +1300,8 @@ static status_t overlay_rename(fs_volume *volume, fs_vnode *vnode, const char *fromName, fs_vnode *toDir, const char *toName) { - OVERLAY_CALL(rename, fromName, toDir, toName) + OverlayInode *toDirNode = (OverlayInode *)toDir->private_node; + OVERLAY_CALL(rename, fromName, toDirNode->SuperVnode(), toName) return B_UNSUPPORTED; }