[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
hurd/libdiskfs ChangeLog dir-renamed.c
From: |
Jeff Bailey |
Subject: |
hurd/libdiskfs ChangeLog dir-renamed.c |
Date: |
Mon, 28 Jul 2003 18:37:24 -0400 |
CVSROOT: /cvsroot/hurd
Module name: hurd
Branch:
Changes by: Jeff Bailey <address@hidden> 03/07/28 18:37:24
Modified files:
libdiskfs : ChangeLog dir-renamed.c
Log message:
2003-06-11 Ognyan Kulev <address@hidden>
* dir-renamed.c (diskfs_rename_dir): Check permissions to remove
FROMNAME before any modification could take place. Check result
of removing the from node.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libdiskfs/ChangeLog.diff?tr1=1.182&tr2=1.183&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libdiskfs/dir-renamed.c.diff?tr1=1.22&tr2=1.23&r1=text&r2=text
Patches:
Index: hurd/libdiskfs/ChangeLog
diff -u hurd/libdiskfs/ChangeLog:1.182 hurd/libdiskfs/ChangeLog:1.183
--- hurd/libdiskfs/ChangeLog:1.182 Thu Jun 27 15:19:13 2002
+++ hurd/libdiskfs/ChangeLog Mon Jul 28 18:37:24 2003
@@ -1,3 +1,9 @@
+2003-06-11 Ognyan Kulev <address@hidden>
+
+ * dir-renamed.c (diskfs_rename_dir): Check permissions to remove
+ FROMNAME before any modification could take place. Check result
+ of removing the from node.
+
2002-06-26 Marcus Brinkmann <address@hidden>
* Makefile (DIST_FILES): Variable removed.
Index: hurd/libdiskfs/dir-renamed.c
diff -u hurd/libdiskfs/dir-renamed.c:1.22 hurd/libdiskfs/dir-renamed.c:1.23
--- hurd/libdiskfs/dir-renamed.c:1.22 Thu Oct 11 22:49:17 2001
+++ hurd/libdiskfs/dir-renamed.c Mon Jul 28 18:37:24 2003
@@ -1,5 +1,5 @@
/*
- Copyright (C) 1994,95,96,97,98,99,2001 Free Software Foundation, Inc.
+ Copyright (C) 1994,95,96,97,98,99,2001,2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -106,8 +106,15 @@
return 0;
}
- /* Now we can safely lock fnp */
- mutex_lock (&fnp->lock);
+ /* Check permissions to remove FROMNAME and lock FNP. */
+ tmpds = alloca (diskfs_dirstat_size);
+ err = diskfs_lookup (fdp, fromname, REMOVE, &tmpnp, tmpds, fromcred);
+ assert (!tmpnp || tmpnp == fnp);
+ if (tmpnp)
+ diskfs_nrele (tmpnp);
+ diskfs_drop_dirstat (fdp, tmpds);
+ if (err)
+ goto out;
if (tnp)
{
@@ -199,8 +206,9 @@
ds = buf;
mutex_unlock (&fnp->lock);
err = diskfs_lookup (fdp, fromname, REMOVE, &tmpnp, ds, fromcred);
- assert (tmpnp == fnp);
- diskfs_nrele (tmpnp);
+ assert (!tmpnp || tmpnp == fnp);
+ if (tmpnp)
+ diskfs_nrele (tmpnp);
if (err)
goto out;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- hurd/libdiskfs ChangeLog dir-renamed.c,
Jeff Bailey <=