aboutsummaryrefslogtreecommitdiffstats
path: root/net/samba3
diff options
context:
space:
mode:
authordanfe <danfe@FreeBSD.org>2005-03-25 18:54:10 +0800
committerdanfe <danfe@FreeBSD.org>2005-03-25 18:54:10 +0800
commit250a9ce9007947c535b9abfc03b47550597c22c6 (patch)
tree7dd9356a69cb03e1695df35f2c2c8154eec18d00 /net/samba3
parent8c8758de40a78b4b20cca2cf31ee058f1d7b78e5 (diff)
downloadfreebsd-ports-gnome-250a9ce9007947c535b9abfc03b47550597c22c6.tar.gz
freebsd-ports-gnome-250a9ce9007947c535b9abfc03b47550597c22c6.tar.zst
freebsd-ports-gnome-250a9ce9007947c535b9abfc03b47550597c22c6.zip
Fix a bug that breaks copy/delete of files from Win98 Explorer.
Bugzilla: https://bugzilla.samba.org/show_bug.cgi?id=2501 Approved by: portmgr (krion)
Diffstat (limited to 'net/samba3')
-rw-r--r--net/samba3/Makefile2
-rw-r--r--net/samba3/files/patch-smbd_dir.c20
2 files changed, 21 insertions, 1 deletions
diff --git a/net/samba3/Makefile b/net/samba3/Makefile
index febbe9088b80..56b950c24abf 100644
--- a/net/samba3/Makefile
+++ b/net/samba3/Makefile
@@ -7,7 +7,7 @@
PORTNAME= samba
PORTVERSION?= 3.0.12
-PORTREVISION?= 0
+PORTREVISION?= 1
PORTEPOCH?= 1
CATEGORIES?= net
MASTER_SITES= ${MASTER_SITE_SAMBA}
diff --git a/net/samba3/files/patch-smbd_dir.c b/net/samba3/files/patch-smbd_dir.c
new file mode 100644
index 000000000000..e7a7a87ec83b
--- /dev/null
+++ b/net/samba3/files/patch-smbd_dir.c
@@ -0,0 +1,20 @@
+##
+## See https://bugzilla.samba.org/bug/2501 for details
+##
+diff -urBb --exclude-from=samba-cvs/diff.excludes samba-3.0.12-orig/source/smbd/dir.c samba-3.0.12/source/smbd/dir.c
+--- smbd/dir.c.orig 2005-03-18 08:56:41.000000000 -0600
++++ smbd/dir.c 2005-03-21 12:51:56.541216536 -0600
+@@ -595,6 +595,13 @@
+ BOOL dptr_SearchDir(struct dptr_struct *dptr, const char *name, long *poffset, SMB_STRUCT_STAT *pst)
+ {
+ ZERO_STRUCTP(pst);
++
++ if (!dptr->has_wild && (dptr->dir_hnd->offset == -1)) {
++ /* This is a singleton directory and we're already at the end. */
++ *poffset = -1;
++ return False;
++ }
++
+ while (SearchDir(dptr->dir_hnd, name, poffset) == True) {
+ if (is_visible_file(dptr->conn, dptr->path, name, pst, True)) {
+ return True;