Re: symlinks and linux 2.1.120

Alan Modra (alan@spri.levels.unisa.edu.au)
Thu, 10 Sep 1998 13:05:13 +0930 (CST)


On 9 Sep 1998, Kevin Buhr wrote:

> Good. If it wasn't clear from my email, I'm not married to one or the
> other. When I submitted the patch, it was to fix two related
> symlink-following behaviours that were *definitely* wrong and needed
> to be fixed, and I rather arbitrarily decided to follow oldname
> symlinks because it was consistent with D/UX 4.0, and it was what
> 2.1.72 was already doing. (Therefore, this behaviour predates my
> patch, so I was wrong to claim responsibility.)

OK, this patch make linux-2.1 compatible with linux-2.0 and solaris.
I tested it too, even though it's such a trivial one :-)

--- linux-2.1.121/fs/namei.c.orig Fri Aug 7 18:51:04 1998
+++ linux-2.1.121/fs/namei.c Thu Sep 10 11:35:59 1998
@@ -84,6 +84,8 @@

/* [16-Dec-97 Kevin Buhr] For security reasons, we change some symlink
* semantics. See the comments in "open_namei" and "do_link" below.
+ *
+ * [10-Sep-98 Alan Modra] Another symlink change.
*/

static inline char * get_page(void)
@@ -992,20 +994,20 @@
struct inode *inode;
int error;

- old_dentry = lookup_dentry(oldname, NULL, 1);
- error = PTR_ERR(old_dentry);
- if (IS_ERR(old_dentry))
- goto exit;
-
/*
* Hardlinks are often used in delicate situations. We avoid
* security-related surprises by not following symlinks on the
- * newname. We *do* follow them on the oldname. This is
- * the same as Digital Unix 4.0, for example.
+ * newname. --KAB
*
- * Solaris 2.5.1 is similar, but for a laugh try linking from
- * a dangling symlink. --KAB
+ * We don't follow them on the oldname either to be compatible
+ * with linux 2.0, and to avoid hard-linking to directories
+ * and other special files. --ADM
*/
+ old_dentry = lookup_dentry(oldname, NULL, 0);
+ error = PTR_ERR(old_dentry);
+ if (IS_ERR(old_dentry))
+ goto exit;
+
new_dentry = lookup_dentry(newname, NULL, 0);
error = PTR_ERR(new_dentry);
if (IS_ERR(new_dentry))

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/faq.html