diff options
-rw-r--r-- | examples/libsmbclient/Makefile | 10 | ||||
-rw-r--r-- | source3/libsmb/libsmbclient.c | 31 |
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; |