goto fail;
}
- if (dirp->name_cache_size) {
- dirp->name_cache = SMB_CALLOC_ARRAY(struct name_cache_entry,
- dirp->name_cache_size);
- if (!dirp->name_cache) {
- goto fail;
- }
- } else {
- dirp->name_cache = NULL;
- }
-
dirhandles_open++;
return dirp;
{
struct name_cache_entry *e;
- if (!dirp->name_cache_size || !dirp->name_cache) {
+ if (dirp->name_cache_size == 0) {
return;
}
+ if (dirp->name_cache == NULL) {
+ dirp->name_cache = SMB_CALLOC_ARRAY(struct name_cache_entry,
+ dirp->name_cache_size);
+
+ if (dirp->name_cache == NULL) {
+ return;
+ }
+ }
+
dirp->name_cache_index = (dirp->name_cache_index+1) %
dirp->name_cache_size;
e = &dirp->name_cache[dirp->name_cache_index];