summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/libsmbclient/Makefile10
-rw-r--r--source3/libsmb/libsmbclient.c31
2 files changed, 28 insertions, 13 deletions
diff --git a/examples/libsmbclient/Makefile b/examples/libsmbclient/Makefile
index d44df77b3f..be383aea67 100644
--- a/examples/libsmbclient/Makefile
+++ b/examples/libsmbclient/Makefile
@@ -10,12 +10,12 @@ EXTLIB_INCL = -I/usr/include/gtk-1.2 \
DEFS = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
CFLAGS = -O0 -g -I$(SAMBA_INCL) $(EXTLIB_INCL) $(DEFS)
-LDFLAGS = -L/usr/local/samba/lib
+LDFLAGS = -L/usr/local/samba/lib \
+ -lldap -lkrb5 -lgssapi_krb5
#LIBSMBCLIENT = /usr/local/samba/lib/libsmbclient.so
LIBSMBCLIENT = ../../source/bin/libsmbclient.a -ldl -lresolv
TESTS= testsmbc \
- tree \
testacl \
testacl2 \
testbrowse \
@@ -26,6 +26,8 @@ TESTS= testsmbc \
testutime \
testread
+# tree \
+
all: $(TESTS) smbsh
testsmbc: testsmbc.o
@@ -38,11 +40,11 @@ tree: tree.o
testacl: testacl.o
@echo Linking testacl
- $(CC) `gtk-config --cflags` $(CFLAGS) $(LDFLAGS) -o $@ $< `gtk-config --libs` $(LIBSMBCLIENT) -lpopt
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBSMBCLIENT) -lpopt
testacl2: testacl2.o
@echo Linking testacl2
- $(CC) `gtk-config --cflags` $(CFLAGS) $(LDFLAGS) -o $@ $< `gtk-config --libs` $(LIBSMBCLIENT) -lpopt
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBSMBCLIENT) -lpopt
testbrowse: testbrowse.o
@echo Linking testbrowse
diff --git a/source3/libsmb/libsmbclient.c b/source3/libsmb/libsmbclient.c
index 90cde9100a..af619e8f3a 100644
--- a/source3/libsmb/libsmbclient.c
+++ b/source3/libsmb/libsmbclient.c
@@ -3434,8 +3434,6 @@ static off_t
smbc_telldir_ctx(SMBCCTX *context,
SMBCFILE *dir)
{
- off_t ret_val; /* Squash warnings about cast */
-
if (!context || !context->internal ||
!context->internal->_initialized) {
@@ -3458,12 +3456,16 @@ smbc_telldir_ctx(SMBCCTX *context,
}
+ /* See if we're already at the end. */
+ if (dir->dir_next == NULL) {
+ /* We are. */
+ return -1;
+ }
+
/*
* We return the pointer here as the offset
*/
- ret_val = (off_t)(long)dir->dir_next;
- return ret_val;
-
+ return (off_t)(long)dir->dir_next->dirent;
}
/*
@@ -4526,6 +4528,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_nt_owner) {
@@ -4573,6 +4576,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_nt_group) {
@@ -4618,6 +4622,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_nt_acl) {
@@ -4708,6 +4713,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
}
@@ -4782,6 +4788,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_dos_size) {
@@ -4826,6 +4833,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_dos_create_time &&
@@ -4868,6 +4876,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_dos_access_time) {
@@ -4909,6 +4918,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_dos_write_time) {
@@ -4950,6 +4960,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_dos_change_time) {
@@ -4991,6 +5002,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
if (! exclude_dos_inode) {
@@ -5035,6 +5047,7 @@ cacl_get(SMBCCTX *context,
buf += n;
n_used += n;
bufsize -= n;
+ n = 0;
}
/* Restore name pointer to its original value */
@@ -5129,8 +5142,8 @@ cacl_set(TALLOC_CTX *ctx,
switch (mode) {
case SMBC_XATTR_MODE_REMOVE_ALL:
old->dacl->num_aces = 0;
- SAFE_FREE(old->dacl->aces);
- SAFE_FREE(old->dacl);
+ prs_mem_free(old->dacl->aces);
+ prs_mem_free(&old->dacl);
old->dacl = NULL;
dacl = old->dacl;
break;
@@ -5149,8 +5162,8 @@ cacl_set(TALLOC_CTX *ctx,
}
old->dacl->num_aces--;
if (old->dacl->num_aces == 0) {
- SAFE_FREE(old->dacl->aces);
- SAFE_FREE(old->dacl);
+ prs_mem_free(&old->dacl->aces);
+ prs_mem_free(&old->dacl);
old->dacl = NULL;
}
found = True;