diff --git a/.downloads/ncpfs-0.12.tgz b/.downloads/ncpfs-0.12.tgz new file mode 100644 index 0000000..83a0899 Binary files /dev/null and b/.downloads/ncpfs-0.12.tgz differ diff --git a/README b/README index 18bf944..fe518f9 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -This is version 0.11 of ncpfs, a free NetWare client filesystem for +This is version 0.12 of ncpfs, a free NetWare client filesystem for Linux. I would like to invite you to write documentation. As those whose diff --git a/kernel-1.2/src/dir.c b/kernel-1.2/src/dir.c index 505c75a..91c4058 100644 --- a/kernel-1.2/src/dir.c +++ b/kernel-1.2/src/dir.c @@ -567,6 +567,7 @@ ncp_init_root(struct ncp_server *server) root->finfo.opened = 0; i->attributes = aDIR; i->dataStreamSize = 1024; + i->volNumber = NCP_NUMBER_OF_VOLUMES+1; /* illegal volnum */ ncp_date_unix2dos(0, &(i->creationTime), &(i->creationDate)); ncp_date_unix2dos(0, &(i->modifyTime), &(i->modifyDate)); ncp_date_unix2dos(0, &dummy, &(i->lastAccessDate)); @@ -624,6 +625,7 @@ ncp_find_inode(struct inode *dir, const char *name) do { if ( (result->dir->finfo.i.DosDirNum == dir_info->DosDirNum) + && (result->dir->finfo.i.volNumber == dir_info->volNumber) && (strcmp(result->finfo.i.entryName, name) == 0)) { return result; @@ -645,6 +647,8 @@ ncp_lookup(struct inode *dir, const char *__name, int len, struct ncp_inode_info *result_info; int found_in_cache; + char name[len+1]; + *result = NULL; if (!dir || !S_ISDIR(dir->i_mode)) @@ -687,7 +691,10 @@ ncp_lookup(struct inode *dir, const char *__name, int len, } } - result_info = ncp_find_inode(dir, __name); + memcpy(name, __name, len); + name[len] = 0; + + result_info = ncp_find_inode(dir, name); if (result_info != 0) { @@ -726,7 +733,7 @@ ncp_lookup(struct inode *dir, const char *__name, int len, DDPRINTK("ncp_lookup: trying index: %d, name: %s\n", i, c_entry[i].i.entryName); - if (strcmp(c_entry[i].i.entryName, __name) == 0) + if (strcmp(c_entry[i].i.entryName, name) == 0) { DPRINTK("ncp_lookup: found in cache!\n"); finfo.i = c_entry[i].i; @@ -740,20 +747,15 @@ ncp_lookup(struct inode *dir, const char *__name, int len, if (found_in_cache == 0) { - char this_name[len+1]; - - memcpy(this_name, __name, len); - this_name[len] = 0; - str_upper(this_name); + str_upper(name); DDPRINTK("ncp_lookup: do_lookup on %s/%s\n", - NCP_ISTRUCT(dir)->entryName, this_name); + NCP_ISTRUCT(dir)->entryName, name); if (ncp_do_lookup(server, dir->i_ino == (int)&(NCP_SERVER(dir)->root) ? NULL : NCP_ISTRUCT(dir), - this_name, - &(finfo.i)) != 0) + name, &(finfo.i)) != 0) { iput(dir); return -ENOENT; diff --git a/ncpfs-0.11.lsm b/ncpfs-0.12.lsm similarity index 79% rename from ncpfs-0.11.lsm rename to ncpfs-0.12.lsm index acb2264..4e884ed 100644 --- a/ncpfs-0.11.lsm +++ b/ncpfs-0.12.lsm @@ -1,7 +1,7 @@ Begin3 Title: ncpfs -Version: 0.11 -Entered-date: 10. January 1996 +Version: 0.12 +Entered-date: 14. January 1996 Description: With ncpfs you can mount volumes of your novell server under Linux. You need kernel 1.2.x or 1.3.54 and above. ncpfs does NOT work with any 1.3.x @@ -11,7 +11,7 @@ Author: lendecke@namu01.gwdg.de (Volker Lendecke) Maintained-by: lendecke@namu01.gwdg.de (Volker Lendecke) Primary-site: linux01.gwdg.de:/pub/ncpfs Alternate-site: sunsite.unc.edu:/pub/system/Filesystems/ - ~66k ncpfs-0.11.tgz - ~ 1k ncpfs-0.11.lsm + ~66k ncpfs-0.12.tgz + ~ 1k ncpfs-0.12.lsm Copying-policy: GPL End