mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 23:40:13 +00:00
dir: verified pathnames fallout
Fix some issues introduced with the verified directory path names commit in master: - In GetVerifiedBlob, the output parameter is set to NULL on entry and dereferenced later on. - For Linux, the code in afs_linux_readdir was changed to pass a DirEntry to GetVerifiedBlob. This is incorrect, the function still expects a DirBuffer pointer. - In afs_dir_IsEmpty, the assignment of ep was removed, leaving the function to dereference this pointer which was never set. Change-Id: I9045076ebe636cf68c19487c0d58baebf2de7dd1 Reviewed-on: http://gerrit.openafs.org/5292 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Derrick Brashear <shadow@dementix.org>
This commit is contained in:
parent
9581821a45
commit
0fb2e3a6db
@ -340,7 +340,7 @@ afs_linux_readdir(struct file *fp, void *dirbuf, filldir_t filldir)
|
||||
if (!dirpos)
|
||||
break;
|
||||
|
||||
code = afs_dir_GetVerifiedBlob(tdc, dirpos, &de);
|
||||
code = afs_dir_GetVerifiedBlob(tdc, dirpos, &entry);
|
||||
if (code) {
|
||||
afs_warn("Corrupt directory (inode %lx, dirpos %d)",
|
||||
(unsigned long)&tdc->f.inode, dirpos);
|
||||
@ -350,6 +350,7 @@ afs_linux_readdir(struct file *fp, void *dirbuf, filldir_t filldir)
|
||||
goto out;
|
||||
}
|
||||
|
||||
de = (struct DirEntry *)entry.data;
|
||||
ino = afs_calc_inum (avc->f.fid.Cell, avc->f.fid.Fid.Volume,
|
||||
ntohl(de->fid.vnode));
|
||||
len = strlen(de->name);
|
||||
|
@ -475,7 +475,7 @@ afs_dir_IsEmpty(dir_file_t dir)
|
||||
/* Walk down the hash table list. */
|
||||
if (afs_dir_GetVerifiedBlob(dir, num, &entrybuf) != 0);
|
||||
break;
|
||||
|
||||
ep = (struct DirEntry *)entrybuf.data;
|
||||
if (strcmp(ep->name, "..") && strcmp(ep->name, ".")) {
|
||||
DRelease(&entrybuf, 0);
|
||||
DRelease(&headerbuf, 0);
|
||||
@ -540,8 +540,6 @@ afs_dir_GetVerifiedBlob(dir_file_t file, afs_int32 blobno,
|
||||
int code;
|
||||
char *cp;
|
||||
|
||||
outbuf = NULL;
|
||||
|
||||
code = GetBlobWithLimit(file, blobno, &buffer, &maxlen);
|
||||
if (code)
|
||||
return code;
|
||||
|
Loading…
Reference in New Issue
Block a user