ubifs: Use a random number for cookies
authorRichard Weinberger <richard@nod.at>
Sun, 16 Oct 2016 17:51:51 +0000 (19:51 +0200)
committerRichard Weinberger <richard@nod.at>
Mon, 12 Dec 2016 22:07:38 +0000 (23:07 +0100)
Signed-off-by: Richard Weinberger <richard@nod.at>
fs/ubifs/journal.c
fs/ubifs/ubifs.h

index 0698cccc62239c9795fc55a0afb8241ec94193c9..88d33775f18bd9aa5e69ea0a15ee2e708ba46632 100644 (file)
@@ -589,6 +589,7 @@ int ubifs_jnl_update(struct ubifs_info *c, const struct inode *dir,
        dent->nlen = cpu_to_le16(fname_len(nm));
        memcpy(dent->name, fname_name(nm), fname_len(nm));
        dent->name[fname_len(nm)] = '\0';
+       dent->cookie = prandom_u32();
 
        zero_dent_node_unused(dent);
        ubifs_prep_grp_node(c, dent, dlen, 0);
@@ -1124,6 +1125,7 @@ int ubifs_jnl_rename(struct ubifs_info *c, const struct inode *old_dir,
        dent->nlen = cpu_to_le16(fname_len(new_nm));
        memcpy(dent->name, fname_name(new_nm), fname_len(new_nm));
        dent->name[fname_len(new_nm)] = '\0';
+       dent->cookie = prandom_u32();
        zero_dent_node_unused(dent);
        ubifs_prep_grp_node(c, dent, dlen1, 0);
 
@@ -1142,6 +1144,7 @@ int ubifs_jnl_rename(struct ubifs_info *c, const struct inode *old_dir,
        dent2->nlen = cpu_to_le16(fname_len(old_nm));
        memcpy(dent2->name, fname_name(old_nm), fname_len(old_nm));
        dent2->name[fname_len(old_nm)] = '\0';
+       dent2->cookie = prandom_u32();
        zero_dent_node_unused(dent2);
        ubifs_prep_grp_node(c, dent2, dlen2, 0);
 
index a80610758543a43ea1e5a9c5db72ac7b8d19cc3e..9be71b6a4cd2be7dcf8df1445ad251767eb68f63 100644 (file)
@@ -39,6 +39,7 @@
 #include <linux/security.h>
 #include <linux/xattr.h>
 #include <linux/fscrypto.h>
+#include <linux/random.h>
 #include "ubifs-media.h"
 
 /* Version of this UBIFS implementation */