Mercurial > nomad
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; }