changeset 601:5970f94b4333

objstore: ensure that backends' getdent ops don't return inode numbers Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Sat, 23 Mar 2019 12:49:48 -0400
parents 9ffce7eb3c0a
children 40a8210210a8
files src/objstore/obj_ops.c
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/objstore/obj_ops.c	Sat Mar 23 12:37:20 2019 -0400
+++ b/src/objstore/obj_ops.c	Sat Mar 23 12:49:48 2019 -0400
@@ -378,6 +378,9 @@
 	if (!dir->ops || !dir->ops->getdent)
 		return -ENOTSUP;
 
+	/* clear whatever garbage the user may have supplied */
+	child->ino = 0;
+
 	MXLOCK(&dir->lock);
 	if (!NATTR_ISDIR(diropen->ver->attrs.mode))
 		ret = -ENOTDIR;
@@ -385,5 +388,8 @@
 		ret = dir->ops->getdent(diropen->ver, offset, child);
 	MXUNLOCK(&dir->lock);
 
+	/* sanity check that the backend didn't try to give us an inode number */
+	ASSERT0(child->ino);
+
 	return ret;
 }