]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid dereference of a freed vnode's operations table
authorPo Lu <luangruo@yahoo.com>
Thu, 27 Jul 2023 10:17:12 +0000 (18:17 +0800)
committerPo Lu <luangruo@yahoo.com>
Thu, 27 Jul 2023 10:17:12 +0000 (18:17 +0800)
* src/androidvfs.c (android_renameat_noreplace):
(android_rename): Free vdst using vdst->ops, not vp->ops.

src/androidvfs.c

index a32471d250e4671e7a7165a628da214a9dc18502..42b1ff8770f6fe8e14f9ec95e8fb71ae16dbb57a 100644 (file)
@@ -5581,7 +5581,7 @@ android_renameat_noreplace (int srcfd, const char *src,
   /* Now try to rename vp to vdst.  */
   rc = (*vp->ops->rename) (vp, vdst, true);
   (*vp->ops->close) (vp);
-  (*vp->ops->close) (vdst);
+  (*vdst->ops->close) (vdst);
   return rc;
 
  error1:
@@ -5613,7 +5613,7 @@ android_rename (const char *src, const char *dst)
   /* Now try to rename vp to vdst.  */
   rc = (*vp->ops->rename) (vp, vdst, false);
   (*vp->ops->close) (vp);
-  (*vp->ops->close) (vdst);
+  (*vdst->ops->close) (vdst);
   return rc;
 
  error1: