summaryrefslogtreecommitdiff
path: root/udev_db.c
diff options
context:
space:
mode:
authorSergey Vlasov <vsu@altlinux.ru>2007-01-23 19:55:38 +0100
committerKay Sievers <kay.sievers@vrfy.org>2007-01-23 19:55:38 +0100
commite0c0807ab32fde7f55776e0a300016bad922e636 (patch)
tree117c38653de162d7f6e31a5b75333d1c6a21442e /udev_db.c
parent27283c2fdaefd9c7fd557fd4663566eacccca33a (diff)
unlink old database file before creating a new one
udev_db_add_device() can be called when the corressponding database entry already exists - it should overwrite the old entry in this case. However, if the old entry was a symlink, fopen(filename, "w") will not overwrite it properly - it will keep the symlink and create a file named after the symlink target. Calling unlink(filename) before trying to create the database file fixes the problem. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Diffstat (limited to 'udev_db.c')
-rw-r--r--udev_db.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/udev_db.c b/udev_db.c
index f3c9509dcc..b1217d80e1 100644
--- a/udev_db.c
+++ b/udev_db.c
@@ -93,6 +93,7 @@ int udev_db_add_device(struct udevice *udev)
struct name_entry *name_loop;
FILE *f;
+ unlink(filename);
f = fopen(filename, "w");
if (f == NULL) {
err("unable to create db file '%s': %s", filename, strerror(errno));