From 8fa4442004f6d7c3c92bb418c723127364f82c17 Mon Sep 17 00:00:00 2001 From: ncpfs archive import Date: Tue, 28 Apr 2026 20:39:57 +0200 Subject: [PATCH] Import ncpfs 0.4 --- .downloads/ncpfs-0.4.tgz | Bin 0 -> 46200 bytes Changes | 6 ++++++ Makefile | 7 +++++-- README | 24 ------------------------ dir.c | 11 ++++++++--- ncpfs-0.3.lsm => ncpfs-0.4.lsm | 8 ++++---- 6 files changed, 23 insertions(+), 33 deletions(-) create mode 100644 .downloads/ncpfs-0.4.tgz rename ncpfs-0.3.lsm => ncpfs-0.4.lsm (73%) diff --git a/.downloads/ncpfs-0.4.tgz b/.downloads/ncpfs-0.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a51fb62a26c9e7ffa3efc4818d5807004a3cc06a GIT binary patch literal 46200 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 literal 0 HcmV?d00001 diff --git a/Changes b/Changes index 9c6a84c..19fc7f6 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,9 @@ +ncpfs-0.3 -> ncpfs-0.4 + +- removed bug causing kernel to crash on filenames too long + This was a typical C bug! Thanks to Uwe Bonnes, + bon@elektron.ikp.physik.th-darmstadt.de for his patience with this one. + ncpfs-0.2 -> ncpfs-0.3 - removed bug in get_pname_static diff --git a/Makefile b/Makefile index 81f1dfc..6471cad 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ INCLUDES = -I/usr/src/linux/include CFLAGS = -Wall -Wstrict-prototypes -O2 -DMODULE -fomit-frame-pointer \ $(INCLUDES) \ -# -DDEBUG_NCP=1 -DDEBUG_NCP_MALLOC +# -DDEBUG_NCP=2 -DDEBUG_NCP_MALLOC # -DDEBUG_NCP_MALLOC CC = gcc -D__KERNEL__ -I. @@ -27,6 +27,9 @@ all: ncpfs.o ncpmount ncptest ncpfs.o: $(OBJS) $(LD) -r -o ncpfs.o $(OBJS) +ncplib.o: ncplib.c ncplib.h + $(CC) $(CFLAGS) -finline-functions -c $< + ncpmount: ncpmount.o gcc -o ncpmount ncpmount.o @@ -40,7 +43,7 @@ ncptest.o: ncptest.c gcc -c ncptest.c -Wall -I. -g ncplib_user.o: ncplib.o - gcc -c ncplib.c -Wall -I. -g -o ncplib_user.o + gcc -c ncplib.c -O3 -Wall -I. -g -o ncplib_user.o nwcrypt.o: nwcrypt.c gcc -c -O2 -Wall nwcrypt.c diff --git a/README b/README index e57e845..74c1f00 100644 --- a/README +++ b/README @@ -25,30 +25,6 @@ programming. If you know about the concepts and possibilities of NCP, Ralph Brown's interrupt list becomes much more readable. It's much easier to find undocumented information if you know what to look for! - -MAILING LIST - -There is a mailing list for discussing lwared and ncpfs. Here's the -message I received after subscribing: - ---- -Thank you for your subscription to the list "linware". - -Topics for the list: -- discussing LinWare server, its features, installation problems and bugs -- using IPX protocol under Linux -- IPX routing and router daemons under Linux - -Send your list postings to address: "linware@sh.cvut.cz" -Send your list control commands to address: "listserv@sh.cvut.cz" ---- - -You can subscribe to this list by sending a message with a line -'add your_name@your_host linware' to listserv@sh.cvut.cz . - - -NCPLIB - For the curious: the file ncplib.c is usable from user space as well. Look at the file ncptest.c for a possible use. I use ncptest to check my assumptions about the widely undocumented NetWare Core Protocol. diff --git a/dir.c b/dir.c index 4d96f5d..e810aa6 100644 --- a/dir.c +++ b/dir.c @@ -477,8 +477,10 @@ get_pname_static(struct inode *dir, const char *name, int len, } #endif - DDPRINTK("get_pname_static: parentname = %s, len = %d\n", + DDPRINTK("get_pname_static: parentname = %s, parlen = %d\n", parentname, parentlen); + DDPRINTK("get_pname_static: name = %s, len = %d\n", + name, len); if (len > NCP_MAXNAMELEN) { return -ENAMETOOLONG; @@ -553,7 +555,7 @@ get_pname(struct inode *dir, const char *name, int len, int result_len; int res; - if ((res = get_pname_static(dir,name,len,result,&result_len) != 0)) { + if ((res = get_pname_static(dir,name,len,result,&result_len)) != 0) { return res; } @@ -753,7 +755,7 @@ ncp_lookup(struct inode *dir, const char *__name, int len, return -ENOENT; } - DPRINTK("ncp_lookup: %s\n", __name); + DDPRINTK("ncp_lookup: %s, len %d\n", __name, len); server = NCP_SERVER(dir); @@ -769,6 +771,9 @@ ncp_lookup(struct inode *dir, const char *__name, int len, return error; } + DDPRINTK("ncp_lookup: get_pname for %s returned %d\n", + __name, error); + result_info = ncp_find_inode(NCP_SERVER(dir), name); if (result_info != 0) { diff --git a/ncpfs-0.3.lsm b/ncpfs-0.4.lsm similarity index 73% rename from ncpfs-0.3.lsm rename to ncpfs-0.4.lsm index be0973a..d383542 100644 --- a/ncpfs-0.3.lsm +++ b/ncpfs-0.4.lsm @@ -1,14 +1,14 @@ Begin3 Title: ncpfs -Version: 0.3 -Entered-date: 01. November 1995 +Version: 0.4 +Entered-date: 02. November 1995 Description: With ncpfs you can mount volumes of your novell server under Linux. Keywords: filesystem kernel ncp novell netware Author: lendecke@namu01.gwdg.de (Volker Lendecke) Maintained-by: lendecke@namu01.gwdg.de (Volker Lendecke) Primary-site: linux01.gwdg.de:/pub/ncpfs - ~45k ncpfs-0.3.tgz - ~ 1k ncpfs-0.3.lsm + ~45k ncpfs-0.4.tgz + ~ 1k ncpfs-0.4.lsm Copying-policy: GPL End