[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1024-g73d5f14

2009-02-19 Thread Tim Prouty
The branch, master has been updated
   via  73d5f14c04f2487f67695ce2e9ff025e25b2b026 (commit)
   via  53bcd162ee4fd55fc5cc3293596f8733ce636b11 (commit)
   via  04a7213eb6a2b776c17a5b56ba3b66e3c3444507 (commit)
   via  2b53b791938bf6b6855b854561dcff70dbc328d3 (commit)
   via  e4675ce8db436ac572fcc476b9bfb1116e997f9f (commit)
   via  6fbebb5369211b72545a1dd588bc6b9fa04210a1 (commit)
  from  669f2a02e29195aaba8cb2f3e50cb2ce66b904a6 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 73d5f14c04f2487f67695ce2e9ff025e25b2b026
Author: Tim Prouty 
Date:   Tue Feb 17 20:39:03 2009 -0800

s3 OneFS: Add shadow copy module

commit 53bcd162ee4fd55fc5cc3293596f8733ce636b11
Author: Tim Prouty 
Date:   Tue Feb 17 18:38:58 2009 -0800

s3 OneFS: Add file_id_create implementation to take advantage of snapshots

commit 04a7213eb6a2b776c17a5b56ba3b66e3c3444507
Author: Tim Prouty 
Date:   Mon Feb 16 16:06:45 2009 -0800

s3: Change the vfs_GetWd cache to use the file_id struct

commit 2b53b791938bf6b6855b854561dcff70dbc328d3
Author: Tim Prouty 
Date:   Mon Feb 16 14:55:52 2009 -0800

s3: Remove unused inform_level2_message struct

commit e4675ce8db436ac572fcc476b9bfb1116e997f9f
Author: Tim Prouty 
Date:   Sun Feb 15 23:45:28 2009 -0800

s3: Add extid to the dev/inode pair

This extends the file_id struct to add an additional generic uint64_t
field: extid.  For backwards compatibility with dev/inodes stored in
xattr_tdbs and acl_tdbs, the ext id is ignored for these databases.
This patch should cause no functional change on systems that don't use
SMB_VFS_FILE_ID_CREATE to set the extid.

Existing code that uses the smb_share_mode library will need to be
updated to be compatibile with the new extid.

commit 6fbebb5369211b72545a1dd588bc6b9fa04210a1
Author: Tim Prouty 
Date:   Sun Feb 15 23:38:53 2009 -0800

s3: Modify SMB_VFS_FILE_ID_CREATE to take a stat struct

Since file_id_create_dev is incompatible with the concept of file_ids,
it is now static and in the one file that needs it.

---

Summary of changes:
 examples/VFS/skel_opaque.c  |2 +-
 examples/VFS/skel_transparent.c |4 +-
 source3/Makefile.in |5 +
 source3/configure.in|3 +-
 source3/include/locking.h   |1 +
 source3/include/proto.h |4 +-
 source3/include/smb.h   |   56 +--
 source3/include/smb_share_modes.h   |   11 +-
 source3/include/vfs.h   |3 +-
 source3/include/vfs_macros.h|6 +-
 source3/lib/file_id.c   |   47 +-
 source3/libsmb/smb_share_modes.c|   39 +-
 source3/locking/locking.c   |6 +-
 source3/modules/onefs_shadow_copy.c |  782 +++
 source3/modules/onefs_shadow_copy.h |   32 ++
 source3/modules/vfs_acl_tdb.c   |6 +
 source3/modules/vfs_default.c   |   15 +-
 source3/modules/vfs_fileid.c|6 +-
 source3/modules/vfs_full_audit.c|6 +-
 source3/modules/vfs_onefs.c |   18 +
 source3/modules/vfs_onefs_shadow_copy.c |  717 
 source3/modules/vfs_streams_depot.c |3 +-
 source3/modules/vfs_xattr_tdb.c |   23 +-
 source3/smbd/globals.c  |3 +-
 source3/smbd/nttrans.c  |2 +
 source3/smbd/open.c |4 +-
 source3/smbd/oplock.c   |   28 +-
 source3/smbd/oplock_irix.c  |   18 +
 source3/smbd/vfs.c  |   15 +-
 29 files changed, 1737 insertions(+), 128 deletions(-)
 create mode 100644 source3/modules/onefs_shadow_copy.c
 create mode 100644 source3/modules/onefs_shadow_copy.h
 create mode 100644 source3/modules/vfs_onefs_shadow_copy.c


Changeset truncated at 500 lines:

diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index 2eb7a94..5845f62 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -292,7 +292,7 @@ static int skel_chflags(vfs_handle_struct *handle,  const 
char *path, uint flags
 }
 
 static struct file_id skel_file_id_create(vfs_handle_struct *handle,
- SMB_DEV_T dev, SMB_INO_T inode)
+ const SMB_STRUCT_STAT *sbuf)
 {
struct file_id id_zero;
ZERO_STRUCT(id_zero);
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index 5670965..7036c73 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -284,9 +284,9 @@ static int skel_chflags(vfs_handle_struct *handle,  const 
char *path, uint flags
 }
 
 static struct file_id skel_file_id_create(vfs_handle_struct *handle,
-   

Build status as of Fri Feb 20 00:00:02 2009

2009-02-19 Thread build
URL: http://build.samba.org/

--- /home/build/master/cache/broken_results.txt.old 2009-02-19 
00:00:24.0 +
+++ /home/build/master/cache/broken_results.txt 2009-02-20 00:00:18.0 
+
@@ -1,23 +1,23 @@
-Build status as of Thu Feb 19 00:00:02 2009
+Build status as of Fri Feb 20 00:00:02 2009
 
 Build counts:
 Tree Total  Broken Panic 
 build_farm   0  0  0 
 ccache   28 5  0 
 ctdb 0  0  0 
-distcc   1  0  0 
-ldb  28 27 0 
-libreplace   28 10 0 
-lorikeet-heimdal 25 14 0 
-pidl 19 3  0 
+distcc   0  0  0 
+ldb  28 28 0 
+libreplace   29 11 0 
+lorikeet-heimdal 26 14 0 
+pidl 20 3  0 
 ppp  12 0  0 
-rsync27 8  0 
+rsync29 8  0 
 samba-docs   0  0  0 
 samba-gtk5  5  0 
-samba_3_X_devel 27 26 0 
-samba_3_X_test 26 23 1 
-samba_4_0_test 28 25 1 
-smb-build27 5  0 
-talloc   28 27 0 
-tdb  26 8  0 
+samba_3_X_devel 28 26 2 
+samba_3_X_test 27 25 3 
+samba_4_0_test 29 26 1 
+smb-build28 6  0 
+talloc   29 28 0 
+tdb  27 9  0 
 


[SCM] CTDB repository - branch master updated - ctdb-1.0.72-10-g051ae5f

2009-02-19 Thread Ronnie Sahlberg
The branch, master has been updated
   via  051ae5f3c13892b860818eac803d348f09845dc6 (commit)
  from  7412c6706c2d8ec668d0a6a50471db369f3dbf2b (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -
commit 051ae5f3c13892b860818eac803d348f09845dc6
Author: root 
Date:   Fri Feb 20 10:58:34 2009 +1100

make it possible to disable checking all samba shares.

this is a timeconsuming process and might not be feasible to perform if 
there are very many thousand shares

---

Summary of changes:
 config/ctdb.sysconfig|5 +
 config/events.d/50.samba |   30 --
 2 files changed, 21 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/config/ctdb.sysconfig b/config/ctdb.sysconfig
index d0d9f75..25c2958 100644
--- a/config/ctdb.sysconfig
+++ b/config/ctdb.sysconfig
@@ -42,6 +42,11 @@
 # default is to not manage Samba
 # CTDB_MANAGES_SAMBA=yes
 
+# If there are very many shares it may not be feasible to check that all
+# of them are available during each monitoring interval.
+# In that case this check can be disabled
+# CTDB_SAMBA_SKIP_SHARE_CHECK=yes
+
 # specify which ports we should check that there is a daemon listening to
 # by default we use testparm and look in smb.conf to figure out.
 # CTDB_SAMBA_CHECK_PORTS="445"
diff --git a/config/events.d/50.samba b/config/events.d/50.samba
index 58df1dc..3e7164a 100755
--- a/config/events.d/50.samba
+++ b/config/events.d/50.samba
@@ -214,21 +214,23 @@ case $cmd in
touch $CTDB_BASE/state/samba/periodic_cleanup
}
 
-   testparm_background_update
-
-   testparm_cat | egrep '^WARNING|^ERROR|^Unknown' && {
-   testparm_foreground_update
-   testparm_cat | egrep '^WARNING|^ERROR|^Unknown' && {
-   echo "ERROR: testparm shows smb.conf is not clean"
-   exit 1
-   }
-   }
+   [ "$CTDB_SAMBA_SKIP_SHARE_CHECK" = "yes" ] || {
+   testparm_background_update
+
+   testparm_cat | egrep '^WARNING|^ERROR|^Unknown' && {
+   testparm_foreground_update
+   testparm_cat | egrep '^WARNING|^ERROR|^Unknown' && {
+   echo "ERROR: testparm shows smb.conf is not clean"
+   exit 1
+   }
+   }
 
-   smb_dirs=`testparm_cat | egrep '^[[:space:]]*path = ' | cut -d= -f2`
-   ctdb_check_directories_probe "Samba" $smb_dirs || {
-   testparm_foreground_update
-   smb_dirs=`testparm_cat | egrep '^[[:space:]]*path = ' | cut -d= -f2`
-   ctdb_check_directories "Samba" $smb_dirs
+   smb_dirs=`testparm_cat | egrep '^[[:space:]]*path = ' | cut -d= 
-f2`
+   ctdb_check_directories_probe "Samba" $smb_dirs || {
+   testparm_foreground_update
+   smb_dirs=`testparm_cat | egrep '^[[:space:]]*path = ' | cut 
-d= -f2`
+   ctdb_check_directories "Samba" $smb_dirs
+   }
}
 
smb_ports="$CTDB_SAMBA_CHECK_PORTS"


-- 
CTDB repository


[SCM] CTDB repository - branch master updated - ctdb-1.0.72-9-g7412c67

2009-02-19 Thread Ronnie Sahlberg
The branch, master has been updated
   via  7412c6706c2d8ec668d0a6a50471db369f3dbf2b (commit)
   via  e1c90b12290c682c2cba90e9afa3a09be014e20e (commit)
   via  2f42429f6996e98c9bfad49eab9fa23e85d7bec2 (commit)
   via  e391bde5ac743956fb30ede65030973a1f13dae5 (commit)
   via  b9e50e3416fecef6a881be3f1b91be977299293f (commit)
   via  9e2245b9bb795e2d757aacd706a9861a59d1638e (commit)
   via  79b8c87338a2d40464e87e501daae403a2f14427 (commit)
   via  b0c6854d1e886456fabdc8f1c3bd21c89311c601 (commit)
   via  dbd90f6210617b23d5695c4c868392363c75d23b (commit)
  from  e1be8cb2dc32f56eabd537b658b47929818b8d01 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -
commit 7412c6706c2d8ec668d0a6a50471db369f3dbf2b
Merge: e1c90b12290c682c2cba90e9afa3a09be014e20e 
e1be8cb2dc32f56eabd537b658b47929818b8d01
Author: Michael Adam 
Date:   Thu Feb 19 23:51:23 2009 +0100

Merge commit 'ctdb-ronnie/master'

commit e1c90b12290c682c2cba90e9afa3a09be014e20e
Merge: 2f42429f6996e98c9bfad49eab9fa23e85d7bec2 
59a04a50e64aae0a89b165d0428e23a8bcf8eb24
Author: Michael Adam 
Date:   Tue Feb 10 00:28:08 2009 +0100

Merge commit 'ctdb-ronnie/master'

commit 2f42429f6996e98c9bfad49eab9fa23e85d7bec2
Author: Mathieu PARENT 
Date:   Wed Feb 4 00:50:46 2009 +0100

correct ctdbd(1) manpage warning

Signed-off-by: Michael Adam 

commit e391bde5ac743956fb30ede65030973a1f13dae5
Author: Mathieu PARENT 
Date:   Wed Feb 4 00:48:56 2009 +0100

smnotify: fix popt.h include to allow use of system lib

Signed-off-by: Michael Adam 

commit b9e50e3416fecef6a881be3f1b91be977299293f
Author: Michael Adam 
Date:   Wed Feb 4 00:42:33 2009 +0100

events 41.httpd: support suse and ubuntu/debian systems for managing apache

The httpd service on suse and ubuntu/debian systems is usually
called "apache2" nowadays.

Note: There are older installs with Apache 1.3 out there, in which case
the service is called "apache". An extra check for these installs could
be useful as a sequel to this patch...

Michael

commit 9e2245b9bb795e2d757aacd706a9861a59d1638e
Author: Michael Adam 
Date:   Wed Feb 4 00:28:16 2009 +0100

build: print default in help for --with-logdir

Michael

commit 79b8c87338a2d40464e87e501daae403a2f14427
Author: Michael Adam 
Date:   Wed Feb 4 00:22:01 2009 +0100

make: add a "showlayout" target for diagnostics

Michael

commit b0c6854d1e886456fabdc8f1c3bd21c89311c601
Author: Mathieu PARENT 
Date:   Wed Feb 4 00:15:57 2009 +0100

build: Make log-directory configurable indepently of VARDIR

This adds a new configure option "--with-logdir".
logdir defaults to "${localstatedir}/log" .
It is important to have logdir configurable for debian systems,
where localstatedir is set to "/var/lib" and not "/var".

Signed-off-by: Michael Adam 

commit dbd90f6210617b23d5695c4c868392363c75d23b
Author: Michael Adam 
Date:   Wed Feb 4 00:01:15 2009 +0100

events.d/41.httpd: fix a typo in the fix of the comment typo

This is embarassing...

Michael

---

Summary of changes:
 Makefile.in   |   13 +
 config/events.d/41.httpd  |   34 +-
 configure.ac  |   11 +++
 doc/ctdbd.1   |4 ++--
 server/ctdbd.c|2 +-
 utils/smnotify/smnotify.c |2 +-
 6 files changed, 57 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/Makefile.in b/Makefile.in
index a1a8f7d..03023b3 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -12,6 +12,7 @@ bindir = @bindir@
 sbindir = @sbindir@
 mandir = @mandir@
 localstatedir = @localstatedir@
+logdir = @LOGDIR@
 VPATH = @srcdir@:@tdbdir@:@tallocdir@:@libreplacedir@:@poptdir@
 srcdir = @srcdir@
 etcdir = @sysconfdir@
@@ -30,6 +31,7 @@ IPQ_LIBS = @IPQ_LIBS@
 CFLAGS=-g -I$(srcdir)/include -Iinclude -Ilib -Ilib/util -I$(srcdir) \
-...@tallocdir@ -...@tdbdir@/include -...@libreplacedir@ \
-DVARDIR=\"$(localstatedir)\" -DETCDIR=\"$(etcdir)\" \
+   -DLOGDIR=\"$(logdir)\" \
-DUSE_MMAP=1 @CFLAGS@ $(POPT_CFLAGS)
 
 lib_fla...@ldflags@ -Llib @LIBS@ $(POPT_LIBS) @INFINIBAND_LIBS@ 
@CTDB_PCAP_LDFLAGS@
@@ -75,6 +77,17 @@ showflags:
@echo '  CFLAGS = $(CFLAGS)'
@echo '  LIBS = $(LIBS)'
 
+showlayout::
+   @echo "ctdb will be installed into:"
+   @echo "  prefix:  $(prefix)"
+   @echo "  bindir:  $(bindir)"
+   @echo "  sbindir: $(sbindir)"
+   @echo "  libdir:  $(libdir)"
+   @echo "  vardir:  $(localstatedir)"
+   @echo "  logdir:  $(logdir)"
+   @echo "  mandir:  $(mandir)"
+   @echo "  etcdir:  $(etcdir)"
+
 .c.o:
@echo Compiling $*.c
@mkdir -p `dirname $...@`
diff --git a/

[SCM] SAMBA-CTDB repository - branch v3-2-ctdb updated - build_3.2.7_ctdb.54-127-g06c3e88

2009-02-19 Thread Michael Adam
The branch, v3-2-ctdb has been updated
   via  06c3e883f0730501181244c360fecd67002c97dd (commit)
   via  2ad6b9078a8ce1d3aed3516ae4967cbe986161c6 (commit)
  from  fd61f118a3842f1c5fd8f51efefb0b63247deeab (commit)

http://gitweb.samba.org/?p=obnox/samba-ctdb.git;a=shortlog;h=v3-2-ctdb


- Log -
commit 06c3e883f0730501181244c360fecd67002c97dd
Author: Michael Adam 
Date:   Thu Feb 19 22:49:44 2009 +0100

remove an unused variable

Michael

commit 2ad6b9078a8ce1d3aed3516ae4967cbe986161c6
Author: Michael Adam 
Date:   Thu Feb 19 22:36:29 2009 +0100

remove an unused variable

Michael

---

Summary of changes:
 source/auth/auth_util.c |1 -
 source/lib/util_sid.c   |2 +-
 2 files changed, 1 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/auth/auth_util.c b/source/auth/auth_util.c
index 9118c73..662c9dd 100644
--- a/source/auth/auth_util.c
+++ b/source/auth/auth_util.c
@@ -756,7 +756,6 @@ NTSTATUS create_local_token(auth_serversupplied_info 
*server_info)
for (i=1; iptok->num_sids; i++) {
gid_t gid;
DOM_SID *sid = &server_info->ptok->user_sids[i];
-   size_t sidindex;
 
/*
 * For secondary groups, potentially apply a group
diff --git a/source/lib/util_sid.c b/source/lib/util_sid.c
index a41bb2e..5a0d7ee 100644
--- a/source/lib/util_sid.c
+++ b/source/lib/util_sid.c
@@ -471,7 +471,7 @@ int sid_compare_sort(const void *p1, const void *p2)
 {
const struct dom_sid *sid1 = (const struct dom_sid *)p1;
const struct dom_sid *sid2 = (const struct dom_sid *)p2;
-   int i, res;
+   int i;
 
if (sid1->sid_rev_num != sid2->sid_rev_num) {
return sid1->sid_rev_num - sid2->sid_rev_num;


-- 
SAMBA-CTDB repository


[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1018-g669f2a0

2009-02-19 Thread Jeremy Allison
The branch, master has been updated
   via  669f2a02e29195aaba8cb2f3e50cb2ce66b904a6 (commit)
  from  2ca48d3740c40be2142ca7e7ad88aabdaa822c06 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 669f2a02e29195aaba8cb2f3e50cb2ce66b904a6
Author: Jeremy Allison 
Date:   Thu Feb 19 13:36:20 2009 -0800

Fix printf warnings found on systems where time_t <> long int.
Jeremy.

---

Summary of changes:
 source3/passdb/pdb_ldap.c|   16 
 source3/printing/tests/vlp.c |2 +-
 source3/utils/smbget.c   |3 ++-
 3 files changed, 11 insertions(+), 10 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index 043b620..70a1c62 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -1249,7 +1249,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_PROFILE_PATH), 
pdb_get_profile_path(sampass));
 
-   if (asprintf(&temp, "%li", pdb_get_logon_time(sampass)) < 0) {
+   if (asprintf(&temp, "%li", (long int)pdb_get_logon_time(sampass)) < 0) {
return false;
}
if (need_update(sampass, PDB_LOGONTIME))
@@ -1257,7 +1257,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_LOGON_TIME), temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", pdb_get_logoff_time(sampass)) < 0) {
+   if (asprintf(&temp, "%li", (long int)pdb_get_logoff_time(sampass)) < 0) 
{
return false;
}
if (need_update(sampass, PDB_LOGOFFTIME))
@@ -1265,7 +1265,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_LOGOFF_TIME), temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", pdb_get_kickoff_time(sampass)) < 0) {
+   if (asprintf(&temp, "%li", (long int)pdb_get_kickoff_time(sampass)) < 
0) {
return false;
}
if (need_update(sampass, PDB_KICKOFFTIME))
@@ -1273,7 +1273,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_KICKOFF_TIME), temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", 
pdb_get_pass_can_change_time_noncalc(sampass)) < 0) {
+   if (asprintf(&temp, "%li", (long 
int)pdb_get_pass_can_change_time_noncalc(sampass)) < 0) {
return false;
}
if (need_update(sampass, PDB_CANCHANGETIME))
@@ -1281,7 +1281,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_PWD_CAN_CHANGE), temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", pdb_get_pass_must_change_time(sampass)) < 0) 
{
+   if (asprintf(&temp, "%li", (long 
int)pdb_get_pass_must_change_time(sampass)) < 0) {
return false;
}
if (need_update(sampass, PDB_MUSTCHANGETIME))
@@ -1361,7 +1361,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
 
if (need_update(sampass, PDB_PASSLASTSET)) {
if (asprintf(&temp, "%li",
-   pdb_get_pass_last_set_time(sampass)) < 0) {
+   (long int)pdb_get_pass_last_set_time(sampass)) 
< 0) {
return false;
}

smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, existing, mods,
@@ -1423,7 +1423,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", badtime) < 0) {
+   if (asprintf(&temp, "%li", (long int)badtime) < 0) {
return false;
}
smbldap_make_mod(
@@ -5941,7 +5941,7 @@ static bool ldapsam_set_trusteddom_pw(struct pdb_methods 
*methods,
smbldap_make_mod(priv2ld(ldap_state), entry, &mods, "sambaSID",
 sid_string_tos(sid));
smbldap_make_mod(priv2ld(ldap_state), entry, &mods, "sambaPwdLastSet",
-talloc_asprintf(talloc_tos(), "%li", time(NULL)));
+talloc_asprintf(talloc_tos(), "%li", (long 
int)time(NULL)));
smbldap_make_mod(priv2ld(ldap_state), entry, &mods,
 "sambaClearTextPassword", pwd);
 
diff --git a/source3/printing/tests/vlp.c b/source3/printing/test

[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4990-gea256b2

2009-02-19 Thread Jeremy Allison
The branch, v3-3-test has been updated
   via  ea256b2d6d35327d63038554bf0a67d986c8e594 (commit)
  from  aaba9a7b9a39bd899a748c45502fb8103c863eb9 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -
commit ea256b2d6d35327d63038554bf0a67d986c8e594
Author: Jeremy Allison 
Date:   Thu Feb 19 13:36:45 2009 -0800

Fix printf warnings found on systems where time_t <> long int.
Jeremy.

---

Summary of changes:
 source/passdb/pdb_ldap.c |   16 
 source/utils/smbget.c|3 ++-
 2 files changed, 10 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c
index 043b620..70a1c62 100644
--- a/source/passdb/pdb_ldap.c
+++ b/source/passdb/pdb_ldap.c
@@ -1249,7 +1249,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_PROFILE_PATH), 
pdb_get_profile_path(sampass));
 
-   if (asprintf(&temp, "%li", pdb_get_logon_time(sampass)) < 0) {
+   if (asprintf(&temp, "%li", (long int)pdb_get_logon_time(sampass)) < 0) {
return false;
}
if (need_update(sampass, PDB_LOGONTIME))
@@ -1257,7 +1257,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_LOGON_TIME), temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", pdb_get_logoff_time(sampass)) < 0) {
+   if (asprintf(&temp, "%li", (long int)pdb_get_logoff_time(sampass)) < 0) 
{
return false;
}
if (need_update(sampass, PDB_LOGOFFTIME))
@@ -1265,7 +1265,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_LOGOFF_TIME), temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", pdb_get_kickoff_time(sampass)) < 0) {
+   if (asprintf(&temp, "%li", (long int)pdb_get_kickoff_time(sampass)) < 
0) {
return false;
}
if (need_update(sampass, PDB_KICKOFFTIME))
@@ -1273,7 +1273,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_KICKOFF_TIME), temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", 
pdb_get_pass_can_change_time_noncalc(sampass)) < 0) {
+   if (asprintf(&temp, "%li", (long 
int)pdb_get_pass_can_change_time_noncalc(sampass)) < 0) {
return false;
}
if (need_update(sampass, PDB_CANCHANGETIME))
@@ -1281,7 +1281,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
get_userattr_key2string(ldap_state->schema_ver, 
LDAP_ATTR_PWD_CAN_CHANGE), temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", pdb_get_pass_must_change_time(sampass)) < 0) 
{
+   if (asprintf(&temp, "%li", (long 
int)pdb_get_pass_must_change_time(sampass)) < 0) {
return false;
}
if (need_update(sampass, PDB_MUSTCHANGETIME))
@@ -1361,7 +1361,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
 
if (need_update(sampass, PDB_PASSLASTSET)) {
if (asprintf(&temp, "%li",
-   pdb_get_pass_last_set_time(sampass)) < 0) {
+   (long int)pdb_get_pass_last_set_time(sampass)) 
< 0) {
return false;
}

smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, existing, mods,
@@ -1423,7 +1423,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates 
*ldap_state,
temp);
SAFE_FREE(temp);
 
-   if (asprintf(&temp, "%li", badtime) < 0) {
+   if (asprintf(&temp, "%li", (long int)badtime) < 0) {
return false;
}
smbldap_make_mod(
@@ -5941,7 +5941,7 @@ static bool ldapsam_set_trusteddom_pw(struct pdb_methods 
*methods,
smbldap_make_mod(priv2ld(ldap_state), entry, &mods, "sambaSID",
 sid_string_tos(sid));
smbldap_make_mod(priv2ld(ldap_state), entry, &mods, "sambaPwdLastSet",
-talloc_asprintf(talloc_tos(), "%li", time(NULL)));
+talloc_asprintf(talloc_tos(), "%li", (long 
int)time(NULL)));
smbldap_make_mod(priv2ld(ldap_state), entry, &mods,
 "sambaClearTextPassword", pwd);
 
diff --git a/source/utils/smbget.c b/source/utils/smbget.c
index c062134..7c01f5d 100644
--- a/source/utils/smbg

[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1017-g2ca48d3

2009-02-19 Thread Jeremy Allison
The branch, master has been updated
   via  2ca48d3740c40be2142ca7e7ad88aabdaa822c06 (commit)
  from  9823b4343d87fc0c45f3c60a49855674fc6ff7c8 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 2ca48d3740c40be2142ca7e7ad88aabdaa822c06
Author: Jeremy Allison 
Date:   Thu Feb 19 13:11:36 2009 -0800

Fix printf type warning.
Jeremy.

---

Summary of changes:
 source3/registry/reg_backend_db.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/registry/reg_backend_db.c 
b/source3/registry/reg_backend_db.c
index fe5f192..8ef83a1 100644
--- a/source3/registry/reg_backend_db.c
+++ b/source3/registry/reg_backend_db.c
@@ -550,8 +550,8 @@ static bool regdb_store_keys_internal(const char *key, 
REGSUBKEY_CTR *ctr)
   (len+thistime)*2);
if(buffer == NULL) {
DEBUG(0, ("regdb_store_keys: Failed to realloc "
- "memory of size [%d]\n",
- (len+thistime)*2));
+ "memory of size [%u]\n",
+ (unsigned int)(len+thistime)*2));
ret = false;
goto done;
}


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4989-gaaba9a7

2009-02-19 Thread Jeremy Allison
The branch, v3-3-test has been updated
   via  aaba9a7b9a39bd899a748c45502fb8103c863eb9 (commit)
  from  d98c43982c56ef788144a3fd67cdd65a9f95f2be (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -
commit aaba9a7b9a39bd899a748c45502fb8103c863eb9
Author: Jeremy Allison 
Date:   Thu Feb 19 13:09:45 2009 -0800

Fix printf type warning.
Jeremy.

---

Summary of changes:
 source/registry/reg_backend_db.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c
index fe5f192..8ef83a1 100644
--- a/source/registry/reg_backend_db.c
+++ b/source/registry/reg_backend_db.c
@@ -550,8 +550,8 @@ static bool regdb_store_keys_internal(const char *key, 
REGSUBKEY_CTR *ctr)
   (len+thistime)*2);
if(buffer == NULL) {
DEBUG(0, ("regdb_store_keys: Failed to realloc "
- "memory of size [%d]\n",
- (len+thistime)*2));
+ "memory of size [%u]\n",
+ (unsigned int)(len+thistime)*2));
ret = false;
goto done;
}


-- 
Samba Shared Repository


[SCM] SAMBA-CTDB repository - branch v3-2-ctdb updated - build_3.2.7_ctdb.54-125-gfd61f11

2009-02-19 Thread Michael Adam
The branch, v3-2-ctdb has been updated
   via  fd61f118a3842f1c5fd8f51efefb0b63247deeab (commit)
   via  8f4b7a74644e7091f8575b581002048a08c5135d (commit)
  from  6654bd91b08a181ebef5acf89c6fb5cf96a48703 (commit)

http://gitweb.samba.org/?p=obnox/samba-ctdb.git;a=shortlog;h=v3-2-ctdb


- Log -
commit fd61f118a3842f1c5fd8f51efefb0b63247deeab
Author: Volker Lendecke 
Date:   Thu Feb 19 20:03:06 2009 +0100

Fix a O(n^2) algorithm in regdb_fetch_keys()
(cherry picked from commit d98c43982c56ef788144a3fd67cdd65a9f95f2be)

Signed-off-by: Michael Adam 

commit 8f4b7a74644e7091f8575b581002048a08c5135d
Author: Volker Lendecke 
Date:   Thu Feb 19 14:16:44 2009 +0100

Fix a buffer handling bug when adding lots of registry keys

This is *ancient*... From 2002, and nobody noticed until someone added lots 
of
shares using net conf... :-)
(cherry picked from commit 36ae846d15027df5e3a02ffabb08183dad9f6517)

Signed-off-by: Michael Adam 

---

Summary of changes:
 source/registry/reg_backend_db.c |   65 +
 1 files changed, 51 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c
index a1093db..e8d165d 100644
--- a/source/registry/reg_backend_db.c
+++ b/source/registry/reg_backend_db.c
@@ -528,21 +528,36 @@ static bool regdb_store_keys_internal(const char *key, 
REGSUBKEY_CTR *ctr)
/* pack all the strings */
 
for (i=0; i buflen) {
-   /* allocate some extra space */
-   buffer = (uint8 *)SMB_REALLOC(buffer, len*2);
+   size_t thistime;
+
+   thistime = tdb_pack(buffer+len, buflen-len, "f",
+   regsubkey_ctr_specific_key(ctr, i));
+   if (len+thistime > buflen) {
+   size_t thistime2;
+   /*
+* tdb_pack hasn't done anything because of the short
+* buffer, allocate extra space.
+*/
+   buffer = SMB_REALLOC_ARRAY(buffer, uint8_t,
+  (len+thistime)*2);
if(buffer == NULL) {
DEBUG(0, ("regdb_store_keys: Failed to realloc "
- "memory of size [%d]\n", len*2));
+ "memory of size [%d]\n",
+ (len+thistime)*2));
+   ret = false;
+   goto done;
+   }
+   buflen = (len+thistime)*2;
+   thistime2 = tdb_pack(
+   buffer+len, buflen-len, "f",
+   regsubkey_ctr_specific_key(ctr, i));
+   if (thistime2 != thistime) {
+   DEBUG(0, ("tdb_pack failed\n"));
ret = false;
goto done;
}
-   buflen = len*2;
-   len = tdb_pack(buffer+len, buflen-len, "f",
-  regsubkey_ctr_specific_key(ctr, i));
}
+   len += thistime;
}
 
/* finally write out the data */
@@ -919,7 +934,6 @@ done:
 
 int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
 {
-   WERROR werr;
uint32 num_items;
uint8 *buf;
uint32 buflen, len;
@@ -950,12 +964,35 @@ int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
buflen = value.dsize;
len = tdb_unpack( buf, buflen, "d", &num_items);
 
+   /*
+* The following code breaks the abstraction that reg_objects.c sets
+* up with regsubkey_ctr_addkey(). But if we use that with the current
+* data structure of ctr->subkeys being an unsorted array, we end up
+* with an O(n^2) algorithm for retrieving keys from the tdb
+* file. This is pretty pointless, as we have to trust the data
+* structure on disk not to have duplicates anyway. The alternative to
+* breaking this abstraction would be to set up a more sophisticated
+* data structure in REGSUBKEY_CTR.
+*
+* This makes "net conf list" for a registry with >1000 shares
+* actually usable :-)
+*/
+
+   ctr->subkeys = talloc_array(ctr, char *, num_items);
+   if (ctr->subkeys == NULL) {
+   DEBUG(5, ("regdb_fetch_keys: could not allocate subkeys\n"));
+   goto done;
+   }
+   ctr->num_subkeys = num_items;
+
for (i=0; isubkeys[i] = talloc_strdup(ctr->subkeys, subkeyname);
+   if (ctr->subkey

[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-3479-gd5069c9

2009-02-19 Thread Jeremy Allison
The branch, v3-2-test has been updated
   via  d5069c916a729698957dd5f828b1bad5bf17971e (commit)
   via  cdcb9bbf47396a7213edafeabb009920bb4e16b7 (commit)
  from  4bb5df5831f54686fe719f0cddef1af048009e9b (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -
commit d5069c916a729698957dd5f828b1bad5bf17971e
Merge: cdcb9bbf47396a7213edafeabb009920bb4e16b7 
4bb5df5831f54686fe719f0cddef1af048009e9b
Author: Jeremy Allison 
Date:   Thu Feb 19 11:58:43 2009 -0800

Merge branch 'v3-2-test' of ssh://j...@git.samba.org/data/git/samba into 
v3-2-test

commit cdcb9bbf47396a7213edafeabb009920bb4e16b7
Author: Jeremy Allison 
Date:   Thu Feb 19 11:55:56 2009 -0800

Backport the semantics of when to delete alternate data streams on a file 
truncate.
Needed to fully support stream semantics.
Jeremy.

---

Summary of changes:
 source/smbd/close.c |2 +-
 source/smbd/open.c  |   14 ++
 2 files changed, 15 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/smbd/close.c b/source/smbd/close.c
index 7637ffb..9fd5693 100644
--- a/source/smbd/close.c
+++ b/source/smbd/close.c
@@ -167,7 +167,7 @@ static void notify_deferred_opens(struct share_mode_lock 
*lck)
  Delete all streams
 /
 
-static NTSTATUS delete_all_streams(connection_struct *conn, const char *fname)
+NTSTATUS delete_all_streams(connection_struct *conn, const char *fname)
 {
struct stream_struct *stream_info;
int i;
diff --git a/source/smbd/open.c b/source/smbd/open.c
index 8209864..58d1f6d 100644
--- a/source/smbd/open.c
+++ b/source/smbd/open.c
@@ -1193,6 +1193,7 @@ static NTSTATUS 
open_file_ntcreate_internal(connection_struct *conn,
bool def_acl = False;
bool posix_open = False;
bool new_file_created = False;
+   bool clear_ads = false;
struct file_id id;
NTSTATUS fsp_open = NT_STATUS_ACCESS_DENIED;
mode_t new_unx_mode = (mode_t)0;
@@ -1325,12 +1326,14 @@ static NTSTATUS 
open_file_ntcreate_internal(connection_struct *conn,
/* If file exists replace/overwrite. If file doesn't
 * exist create. */
flags2 |= (O_CREAT | O_TRUNC);
+   clear_ads = true;
break;
 
case FILE_OVERWRITE_IF:
/* If file exists replace/overwrite. If file doesn't
 * exist create. */
flags2 |= (O_CREAT | O_TRUNC);
+   clear_ads = true;
break;
 
case FILE_OPEN:
@@ -1355,6 +1358,7 @@ static NTSTATUS 
open_file_ntcreate_internal(connection_struct *conn,
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
flags2 |= O_TRUNC;
+   clear_ads = true;
break;
 
case FILE_CREATE:
@@ -1787,6 +1791,16 @@ static NTSTATUS 
open_file_ntcreate_internal(connection_struct *conn,
 
SMB_ASSERT(lck != NULL);
 
+   /* Delete streams if create_disposition requires it */
+   if (file_existed && clear_ads && !is_ntfs_stream_name(fname)) {
+   status = delete_all_streams(conn, fname);
+   if (!NT_STATUS_IS_OK(status)) {
+   TALLOC_FREE(lck);
+   fd_close(fsp);
+   return status;
+   }
+   }
+
/* note that we ignore failure for the following. It is
basically a hack for NFS, and NFS will never set one of
these only read them. Nobody but Samba can ever set a deny


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1016-g9823b43

2009-02-19 Thread Volker Lendecke
The branch, master has been updated
   via  9823b4343d87fc0c45f3c60a49855674fc6ff7c8 (commit)
  from  a13f065bad0f4d21a67e68b743f17f45bf0a4691 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 9823b4343d87fc0c45f3c60a49855674fc6ff7c8
Author: Volker Lendecke 
Date:   Thu Feb 19 20:59:31 2009 +0100

Fix an uninitialized variable

---

Summary of changes:
 source3/lib/netapi/serverinfo.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/netapi/serverinfo.c b/source3/lib/netapi/serverinfo.c
index 72ceec0..cbb9197 100644
--- a/source3/lib/netapi/serverinfo.c
+++ b/source3/lib/netapi/serverinfo.c
@@ -397,6 +397,7 @@ static NTSTATUS 
map_server_info_to_SERVER_INFO_buffer(TALLOC_CTX *mem_ctx,
 
case 599:
i599.sv599_sessopens= i->info599->sessopen;
+   i599.sv599_sessvcs  = i->info599->sesssvc;
i599.sv599_opensearch   = 
i->info599->opensearch;
i599.sv599_sizreqbuf= 
i->info599->sizereqbufs;
i599.sv599_initworkitems= 
i->info599->initworkitems;


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-3477-g4bb5df5

2009-02-19 Thread Volker Lendecke
The branch, v3-2-test has been updated
   via  4bb5df5831f54686fe719f0cddef1af048009e9b (commit)
  from  36ae846d15027df5e3a02ffabb08183dad9f6517 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -
commit 4bb5df5831f54686fe719f0cddef1af048009e9b
Author: Volker Lendecke 
Date:   Thu Feb 19 20:03:06 2009 +0100

Fix a O(n^2) algorithm in regdb_fetch_keys()

---

Summary of changes:
 source/registry/reg_backend_db.c |   32 +++-
 1 files changed, 27 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c
index 12ccc16..fb8b64a 100644
--- a/source/registry/reg_backend_db.c
+++ b/source/registry/reg_backend_db.c
@@ -727,7 +727,6 @@ fail:
 
 int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
 {
-   WERROR werr;
char *path = NULL;
uint32 num_items;
uint8 *buf;
@@ -770,12 +769,35 @@ int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
 
len = tdb_unpack( buf, buflen, "d", &num_items);
 
+   /*
+* The following code breaks the abstraction that reg_objects.c sets
+* up with regsubkey_ctr_addkey(). But if we use that with the current
+* data structure of ctr->subkeys being an unsorted array, we end up
+* with an O(n^2) algorithm for retrieving keys from the tdb
+* file. This is pretty pointless, as we have to trust the data
+* structure on disk not to have duplicates anyway. The alternative to
+* breaking this abstraction would be to set up a more sophisticated
+* data structure in REGSUBKEY_CTR.
+*
+* This makes "net conf list" for a registry with >1000 shares
+* actually usable :-)
+*/
+
+   ctr->subkeys = talloc_array(ctr, char *, num_items);
+   if (ctr->subkeys == NULL) {
+   DEBUG(5, ("regdb_fetch_keys: could not allocate subkeys\n"));
+   goto fail;
+   }
+   ctr->num_subkeys = num_items;
+
for (i=0; isubkeys[i] = talloc_strdup(ctr->subkeys, subkeyname);
+   if (ctr->subkeys[i] == NULL) {
+   DEBUG(5, ("regdb_fetch_keys: could not allocate "
+ "subkeyname\n"));
+   TALLOC_FREE(ctr->subkeys);
+   ctr->num_subkeys = 0;
goto fail;
}
}


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4988-gd98c439

2009-02-19 Thread Volker Lendecke
The branch, v3-3-test has been updated
   via  d98c43982c56ef788144a3fd67cdd65a9f95f2be (commit)
  from  5a68f1e2c1fd16d315b1e303a90eb6475bbe7b15 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -
commit d98c43982c56ef788144a3fd67cdd65a9f95f2be
Author: Volker Lendecke 
Date:   Thu Feb 19 20:03:06 2009 +0100

Fix a O(n^2) algorithm in regdb_fetch_keys()

---

Summary of changes:
 source/registry/reg_backend_db.c |   32 +++-
 1 files changed, 27 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c
index a3cdaa7..fe5f192 100644
--- a/source/registry/reg_backend_db.c
+++ b/source/registry/reg_backend_db.c
@@ -942,7 +942,6 @@ done:
 
 int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
 {
-   WERROR werr;
uint32 num_items;
uint8 *buf;
uint32 buflen, len;
@@ -973,12 +972,35 @@ int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
buflen = value.dsize;
len = tdb_unpack( buf, buflen, "d", &num_items);
 
+   /*
+* The following code breaks the abstraction that reg_objects.c sets
+* up with regsubkey_ctr_addkey(). But if we use that with the current
+* data structure of ctr->subkeys being an unsorted array, we end up
+* with an O(n^2) algorithm for retrieving keys from the tdb
+* file. This is pretty pointless, as we have to trust the data
+* structure on disk not to have duplicates anyway. The alternative to
+* breaking this abstraction would be to set up a more sophisticated
+* data structure in REGSUBKEY_CTR.
+*
+* This makes "net conf list" for a registry with >1000 shares
+* actually usable :-)
+*/
+
+   ctr->subkeys = talloc_array(ctr, char *, num_items);
+   if (ctr->subkeys == NULL) {
+   DEBUG(5, ("regdb_fetch_keys: could not allocate subkeys\n"));
+   goto done;
+   }
+   ctr->num_subkeys = num_items;
+
for (i=0; isubkeys[i] = talloc_strdup(ctr->subkeys, subkeyname);
+   if (ctr->subkeys[i] == NULL) {
+   DEBUG(5, ("regdb_fetch_keys: could not allocate "
+ "subkeyname\n"));
+   TALLOC_FREE(ctr->subkeys);
+   ctr->num_subkeys = 0;
goto done;
}
}


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4987-g5a68f1e

2009-02-19 Thread Jeremy Allison
The branch, v3-3-test has been updated
   via  5a68f1e2c1fd16d315b1e303a90eb6475bbe7b15 (commit)
  from  13f0a2903257677cc107f861e4ed2b58e52a1e21 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -
commit 5a68f1e2c1fd16d315b1e303a90eb6475bbe7b15
Author: Jeremy Allison 
Date:   Thu Feb 19 11:19:10 2009 -0800

Backport the semantics of when to delete alternate data streams on a file 
truncate.
Needed to fully support stream semantics.
Jeremy.

---

Summary of changes:
 source/include/proto.h |1 +
 source/smbd/close.c|2 +-
 source/smbd/open.c |   14 ++
 3 files changed, 16 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/proto.h b/source/include/proto.h
index 716f177..edb0009 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -8690,6 +8690,7 @@ void msg_close_file(struct messaging_context *msg_ctx,
uint32_t msg_type,
struct server_id server_id,
DATA_BLOB *data);
+NTSTATUS delete_all_streams(connection_struct *conn, const char *fname);
 
 /* The following definitions come from smbd/conn.c  */
 
diff --git a/source/smbd/close.c b/source/smbd/close.c
index 25552e3..d586116 100644
--- a/source/smbd/close.c
+++ b/source/smbd/close.c
@@ -167,7 +167,7 @@ static void notify_deferred_opens(struct share_mode_lock 
*lck)
  Delete all streams
 /
 
-static NTSTATUS delete_all_streams(connection_struct *conn, const char *fname)
+NTSTATUS delete_all_streams(connection_struct *conn, const char *fname)
 {
struct stream_struct *stream_info;
int i;
diff --git a/source/smbd/open.c b/source/smbd/open.c
index 716b9ff..bbf1b40 100644
--- a/source/smbd/open.c
+++ b/source/smbd/open.c
@@ -1358,6 +1358,7 @@ static NTSTATUS 
open_file_ntcreate_internal(connection_struct *conn,
bool def_acl = False;
bool posix_open = False;
bool new_file_created = False;
+   bool clear_ads = false;
struct file_id id;
NTSTATUS fsp_open = NT_STATUS_ACCESS_DENIED;
mode_t new_unx_mode = (mode_t)0;
@@ -1490,12 +1491,14 @@ static NTSTATUS 
open_file_ntcreate_internal(connection_struct *conn,
/* If file exists replace/overwrite. If file doesn't
 * exist create. */
flags2 |= (O_CREAT | O_TRUNC);
+   clear_ads = true;
break;
 
case FILE_OVERWRITE_IF:
/* If file exists replace/overwrite. If file doesn't
 * exist create. */
flags2 |= (O_CREAT | O_TRUNC);
+   clear_ads = true;
break;
 
case FILE_OPEN:
@@ -1520,6 +1523,7 @@ static NTSTATUS 
open_file_ntcreate_internal(connection_struct *conn,
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
flags2 |= O_TRUNC;
+   clear_ads = true;
break;
 
case FILE_CREATE:
@@ -1953,6 +1957,16 @@ static NTSTATUS 
open_file_ntcreate_internal(connection_struct *conn,
 
SMB_ASSERT(lck != NULL);
 
+   /* Delete streams if create_disposition requires it */
+   if (file_existed && clear_ads && !is_ntfs_stream_name(fname)) {
+   status = delete_all_streams(conn, fname);
+   if (!NT_STATUS_IS_OK(status)) {
+   TALLOC_FREE(lck);
+   fd_close(fsp);
+   return status;
+   }
+   }
+
/* note that we ignore failure for the following. It is
basically a hack for NFS, and NFS will never set one of
these only read them. Nobody but Samba can ever set a deny


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1015-ga13f065

2009-02-19 Thread Volker Lendecke
The branch, master has been updated
   via  a13f065bad0f4d21a67e68b743f17f45bf0a4691 (commit)
  from  669617036eecbbe2fb9b53c15faa76be147d916a (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit a13f065bad0f4d21a67e68b743f17f45bf0a4691
Author: Volker Lendecke 
Date:   Thu Feb 19 20:03:06 2009 +0100

Fix a O(n^2) algorithm in regdb_fetch_keys()

---

Summary of changes:
 source3/registry/reg_backend_db.c |   32 +++-
 1 files changed, 27 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/registry/reg_backend_db.c 
b/source3/registry/reg_backend_db.c
index 612b448..fe5f192 100644
--- a/source3/registry/reg_backend_db.c
+++ b/source3/registry/reg_backend_db.c
@@ -942,7 +942,6 @@ done:
 
 int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
 {
-   WERROR werr;
uint32 num_items;
uint8 *buf;
uint32 buflen, len;
@@ -973,12 +972,35 @@ int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
buflen = value.dsize;
len = tdb_unpack( buf, buflen, "d", &num_items);
 
+   /*
+* The following code breaks the abstraction that reg_objects.c sets
+* up with regsubkey_ctr_addkey(). But if we use that with the current
+* data structure of ctr->subkeys being an unsorted array, we end up
+* with an O(n^2) algorithm for retrieving keys from the tdb
+* file. This is pretty pointless, as we have to trust the data
+* structure on disk not to have duplicates anyway. The alternative to
+* breaking this abstraction would be to set up a more sophisticated
+* data structure in REGSUBKEY_CTR.
+*
+* This makes "net conf list" for a registry with >1000 shares
+* actually usable :-)
+*/
+
+   ctr->subkeys = talloc_array(ctr, char *, num_items);
+   if (ctr->subkeys == NULL) {
+   DEBUG(5, ("regdb_fetch_keys: could not allocate subkeys\n"));
+   goto done;
+   }
+   ctr->num_subkeys = num_items;
+
for (i=0; isubkeys[i] = talloc_strdup(ctr->subkeys, subkeyname);
+   if (ctr->subkeys[i] == NULL) {
+   DEBUG(5, ("regdb_fetch_keys: could not allocate "
+ "subkeyname\n"));
+   TALLOC_FREE(ctr->subkeys);
+   ctr->num_subkeys = 0;
goto done;
}
}


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1014-g6696170

2009-02-19 Thread Günther Deschner
The branch, master has been updated
   via  669617036eecbbe2fb9b53c15faa76be147d916a (commit)
   via  38fde6d5d9abd7faf5053c746acebba342c5d335 (commit)
   via  0470feeb7f40e31b9fc899988a55b19bd1290d9e (commit)
  from  c71fa39c29ee64b80adf92090a61c81f323742b9 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 669617036eecbbe2fb9b53c15faa76be147d916a
Author: Günther Deschner 
Date:   Thu Feb 19 19:02:48 2009 +0100

s3-spoolss: fix vista fallback in _spoolss_AddPrinterDriverEx.

Martin Zielinski, if you're reading this, please have a look. Vista nicely 
takes
just a WERR_UNKNOWN_LEVEL here and retries with a level 6 add.

Guenther

commit 38fde6d5d9abd7faf5053c746acebba342c5d335
Author: Günther Deschner 
Date:   Wed Feb 18 19:00:29 2009 +0100

s3-spoolss: remove old spoolss_AddPrinterDriver{Ex}.

Guenther

commit 0470feeb7f40e31b9fc899988a55b19bd1290d9e
Author: Günther Deschner 
Date:   Wed Feb 18 18:59:43 2009 +0100

s3-spoolss: use pidl for _spoolss_AddPrinterDriver{Ex}.

Guenther

---

Summary of changes:
 source3/include/proto.h |8 -
 source3/include/rpc_spoolss.h   |   16 --
 source3/rpc_parse/parse_spoolss.c   |  185 ---
 source3/rpc_server/srv_spoolss.c|   62 +
 source3/rpc_server/srv_spoolss_nt.c |  283 ++-
 5 files changed, 217 insertions(+), 337 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/proto.h b/source3/include/proto.h
index 63adbf5..3806c96 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5964,12 +5964,6 @@ bool make_spoolss_driver_info_3(TALLOC_CTX *mem_ctx,
 bool make_spoolss_buffer5(TALLOC_CTX *mem_ctx, BUFFER5 *buf5, uint32 len, 
uint16 *src);
 bool spoolss_io_q_addprinterdriver(const char *desc, SPOOL_Q_ADDPRINTERDRIVER 
*q_u, prs_struct *ps, int depth);
 bool spoolss_io_r_addprinterdriver(const char *desc, SPOOL_R_ADDPRINTERDRIVER 
*q_u, prs_struct *ps, int depth);
-bool spoolss_io_q_addprinterdriverex(const char *desc, 
SPOOL_Q_ADDPRINTERDRIVEREX *q_u, prs_struct *ps, int depth);
-bool spoolss_io_r_addprinterdriverex(const char *desc, 
SPOOL_R_ADDPRINTERDRIVEREX *q_u, prs_struct *ps, int depth);
-bool uni_2_asc_printer_driver_3(SPOOL_PRINTER_DRIVER_INFO_LEVEL_3 *uni,
-NT_PRINTER_DRIVER_INFO_LEVEL_3 **asc);
-bool uni_2_asc_printer_driver_6(SPOOL_PRINTER_DRIVER_INFO_LEVEL_6 *uni,
-NT_PRINTER_DRIVER_INFO_LEVEL_6 **asc);
 bool uni_2_asc_printer_info_2(const SPOOL_PRINTER_INFO_LEVEL_2 *uni,
   NT_PRINTER_INFO_LEVEL_2  *d);
 bool spoolss_io_r_enumprintprocessors(const char *desc, 
SPOOL_R_ENUMPRINTPROCESSORS *r_u, prs_struct *ps, int depth);
@@ -6226,8 +6220,6 @@ WERROR _spoolss_enumprinterdrivers( pipes_struct *p, 
SPOOL_Q_ENUMPRINTERDRIVERS
 WERROR _spoolss_enumforms(pipes_struct *p, SPOOL_Q_ENUMFORMS *q_u, 
SPOOL_R_ENUMFORMS *r_u);
 WERROR enumports_hook(TALLOC_CTX *ctx, int *count, char ***lines );
 WERROR _spoolss_enumports( pipes_struct *p, SPOOL_Q_ENUMPORTS *q_u, 
SPOOL_R_ENUMPORTS *r_u);
-WERROR _spoolss_addprinterdriver(pipes_struct *p, SPOOL_Q_ADDPRINTERDRIVER 
*q_u, SPOOL_R_ADDPRINTERDRIVER *r_u);
-WERROR _spoolss_addprinterdriverex(pipes_struct *p, SPOOL_Q_ADDPRINTERDRIVEREX 
*q_u, SPOOL_R_ADDPRINTERDRIVEREX *r_u);
 WERROR _spoolss_enumprinterdata(pipes_struct *p, SPOOL_Q_ENUMPRINTERDATA *q_u, 
SPOOL_R_ENUMPRINTERDATA *r_u);
 WERROR _spoolss_setprinterdata( pipes_struct *p, SPOOL_Q_SETPRINTERDATA *q_u, 
SPOOL_R_SETPRINTERDATA *r_u);
 WERROR _spoolss_enumprintprocessors(pipes_struct *p, 
SPOOL_Q_ENUMPRINTPROCESSORS *q_u, SPOOL_R_ENUMPRINTPROCESSORS *r_u);
diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h
index d7d93e3..99da007 100644
--- a/source3/include/rpc_spoolss.h
+++ b/source3/include/rpc_spoolss.h
@@ -1178,22 +1178,6 @@ typedef struct spool_r_addprinterdriver
 }
 SPOOL_R_ADDPRINTERDRIVER;
 
-typedef struct spool_q_addprinterdriverex
-{
-   uint32 server_name_ptr;
-   UNISTR2 server_name;
-   uint32 level;
-   SPOOL_PRINTER_DRIVER_INFO_LEVEL info;
-   uint32 copy_flags;
-}
-SPOOL_Q_ADDPRINTERDRIVEREX;
-
-typedef struct spool_r_addprinterdriverex
-{
-   WERROR status;
-}
-SPOOL_R_ADDPRINTERDRIVEREX;
-
 typedef struct spool_q_enumprintprocessors
 {
uint32 name_ptr;
diff --git a/source3/rpc_parse/parse_spoolss.c 
b/source3/rpc_parse/parse_spoolss.c
index b798eef..577ba73 100644
--- a/source3/rpc_parse/parse_spoolss.c
+++ b/source3/rpc_parse/parse_spoolss.c
@@ -3859,47 +3859,6 @@ bool spool_io_printer_driver_info_level_6(const char 
*desc, SPOOL_PRINTER_DRIVER
 }
 
 /***
- convert a buffer of UNICODE string

[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1011-gc71fa39

2009-02-19 Thread Günther Deschner
The branch, master has been updated
   via  c71fa39c29ee64b80adf92090a61c81f323742b9 (commit)
   via  286ec6847b623ddd33d2fb7690c994feb4e3e17a (commit)
   via  8c569b59f0c8ed1d1d65fd49561201d035f20fb5 (commit)
  from  e9c42e3c21cdc1fa25a05ef0f2edc4ca9b0b486e (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit c71fa39c29ee64b80adf92090a61c81f323742b9
Author: Günther Deschner 
Date:   Thu Feb 19 10:44:42 2009 +0100

s3-spoolss: remove old spoolss_GetPrintProcessorDirectory.

Guenther

commit 286ec6847b623ddd33d2fb7690c994feb4e3e17a
Author: Günther Deschner 
Date:   Thu Feb 19 10:42:49 2009 +0100

s3-spoolss: use pidl for _spoolss_GetPrintProcessorDirectory.

Guenther.

commit 8c569b59f0c8ed1d1d65fd49561201d035f20fb5
Author: Günther Deschner 
Date:   Thu Feb 19 10:26:00 2009 +0100

s3-rpcclient: use rpccli_spoolss_GetPrintProcessorDirectory in rpcclient.

Guenther

---

Summary of changes:
 source3/include/proto.h |   10 ---
 source3/include/rpc_spoolss.h   |   29 
 source3/rpc_client/cli_spoolss.c|   58 ---
 source3/rpc_parse/parse_spoolss.c   |  137 ---
 source3/rpc_server/srv_spoolss.c|   22 +--
 source3/rpc_server/srv_spoolss_nt.c |  106 
 source3/rpcclient/cmd_spoolss.c |   43 +---
 7 files changed, 79 insertions(+), 326 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/proto.h b/source3/include/proto.h
index 80db935..63adbf5 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5497,10 +5497,6 @@ WERROR rpccli_spoolss_addprinterdriver (struct 
rpc_pipe_client *cli,
 PRINTER_DRIVER_CTR *ctr);
 WERROR rpccli_spoolss_addprinterex (struct rpc_pipe_client *cli, TALLOC_CTX 
*mem_ctx,
 uint32 level, PRINTER_INFO_CTR*ctr);
-WERROR rpccli_spoolss_getprintprocessordirectory(struct rpc_pipe_client *cli,
- TALLOC_CTX *mem_ctx,
- char *name, char *environment,
- fstring procdir);
 WERROR rpccli_spoolss_enumforms(struct rpc_pipe_client *cli, TALLOC_CTX 
*mem_ctx,
 POLICY_HND *handle, int level, uint32 *num_forms,
 FORM_1 **forms);
@@ -5885,7 +5881,6 @@ uint32 spoolss_size_job_info_1(JOB_INFO_1 *info);
 uint32 spoolss_size_job_info_2(JOB_INFO_2 *info);
 uint32 spoolss_size_form_1(FORM_1 *info);
 uint32 spoolss_size_port_info_1(PORT_INFO_1 *info);
-uint32 spoolss_size_printprocessordirectory_info_1(PRINTPROCESSOR_DIRECTORY_1 
*info);
 uint32 spoolss_size_port_info_2(PORT_INFO_2 *info);
 uint32 spoolss_size_printprocessor_info_1(PRINTPROCESSOR_1 *info);
 uint32 spoolss_size_printprocdatatype_info_1(PRINTPROCDATATYPE_1 *info);
@@ -6018,10 +6013,6 @@ bool spoolss_io_q_enumprinterkey(const char *desc, 
SPOOL_Q_ENUMPRINTERKEY *q_u,
 bool spoolss_io_r_enumprinterkey(const char *desc, SPOOL_R_ENUMPRINTERKEY 
*r_u, prs_struct *ps, int depth);
 bool spoolss_io_q_enumprinterdataex(const char *desc, 
SPOOL_Q_ENUMPRINTERDATAEX *q_u, prs_struct *ps, int depth);
 bool spoolss_io_r_enumprinterdataex(const char *desc, 
SPOOL_R_ENUMPRINTERDATAEX *r_u, prs_struct *ps, int depth);
-bool 
make_spoolss_q_getprintprocessordirectory(SPOOL_Q_GETPRINTPROCESSORDIRECTORY 
*q_u, const char *name, char *environment, int level, RPC_BUFFER *buffer, 
uint32 offered);
-bool spoolss_io_q_getprintprocessordirectory(const char *desc, 
SPOOL_Q_GETPRINTPROCESSORDIRECTORY *q_u, prs_struct *ps, int depth);
-bool spoolss_io_r_getprintprocessordirectory(const char *desc, 
SPOOL_R_GETPRINTPROCESSORDIRECTORY *r_u, prs_struct *ps, int depth);
-bool smb_io_printprocessordirectory_1(const char *desc, RPC_BUFFER *buffer, 
PRINTPROCESSOR_DIRECTORY_1 *info, int depth);
 bool make_spoolss_q_enumforms(SPOOL_Q_ENUMFORMS *q_u, POLICY_HND *handle, 
  uint32 level, RPC_BUFFER *buffer,
  uint32 offered);
@@ -6245,7 +6236,6 @@ WERROR _spoolss_enumprintmonitors(pipes_struct *p, 
SPOOL_Q_ENUMPRINTMONITORS *q_
 WERROR _spoolss_getjob( pipes_struct *p, SPOOL_Q_GETJOB *q_u, SPOOL_R_GETJOB 
*r_u);
 WERROR _spoolss_enumprinterkey(pipes_struct *p, SPOOL_Q_ENUMPRINTERKEY *q_u, 
SPOOL_R_ENUMPRINTERKEY *r_u);
 WERROR _spoolss_enumprinterdataex(pipes_struct *p, SPOOL_Q_ENUMPRINTERDATAEX 
*q_u, SPOOL_R_ENUMPRINTERDATAEX *r_u);
-WERROR _spoolss_getprintprocessordirectory(pipes_struct *p, 
SPOOL_Q_GETPRINTPROCESSORDIRECTORY *q_u, SPOOL_R_GETPRINTPROCESSORDIRECTORY 
*r_u);
 
 /* The following definitions come from rpc_server/srv_srvsvc_nt.c  */
 
diff --git a/source3/include/rpc_spoolss.h b/source3/include/r

[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1008-ge9c42e3

2009-02-19 Thread Günther Deschner
The branch, master has been updated
   via  e9c42e3c21cdc1fa25a05ef0f2edc4ca9b0b486e (commit)
   via  ebb3b307006d913b943a3cb341b32843e9ac6200 (commit)
   via  0038acb20d1c5ed8eea632adf631ed84f960165f (commit)
   via  bcb5331fa7e8711e22c9543c59efa442143a6cc6 (commit)
  from  4f803502ef0bca3fee5017469f858bea702b069d (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit e9c42e3c21cdc1fa25a05ef0f2edc4ca9b0b486e
Author: Günther Deschner 
Date:   Thu Feb 19 19:17:19 2009 +0100

s3-spoolss: fix _spoolss_GetPrinterDriverDirectory.

treat architecture correctly as it is a [unique] pointer, and newer
Windows versions sometimes send in an empty string.

Guenther

commit ebb3b307006d913b943a3cb341b32843e9ac6200
Author: Günther Deschner 
Date:   Thu Feb 19 17:41:10 2009 +0100

s3-rpcclient: use SPOOLSS_ARCHITECTURE_NT_X86 define in spoolss 
getdriverdir cmd.

Guenther

commit 0038acb20d1c5ed8eea632adf631ed84f960165f
Author: Günther Deschner 
Date:   Thu Feb 19 15:56:05 2009 +0100

s3-spoolss: _spoolss_OpenPrinterEx needs to wipe out policy handle upon 
failure.

Guenther

commit bcb5331fa7e8711e22c9543c59efa442143a6cc6
Author: Günther Deschner 
Date:   Thu Feb 19 17:40:21 2009 +0100

s3-spoolss: _spoolss_AddPrinterEx needs to wipe out policy handle upon 
failure.

Guenther

---

Summary of changes:
 source3/rpc_server/srv_spoolss_nt.c |   18 +-
 source3/rpcclient/cmd_spoolss.c |2 +-
 2 files changed, 18 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_server/srv_spoolss_nt.c 
b/source3/rpc_server/srv_spoolss_nt.c
index d72e270..171953b 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -1529,6 +1529,7 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
DEBUGADD(3,("checking name: %s\n",name));
 
if (!open_printer_hnd(p, handle, name, 0)) {
+   ZERO_STRUCTP(r->out.handle);
return WERR_INVALID_PARAM;
}
 
@@ -1537,6 +1538,7 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
DEBUG(0,("_spoolss_OpenPrinterEx: logic error.  Can't find 
printer "
"handle we created for printer %s\n", name ));
close_printer_handle(p,handle);
+   ZERO_STRUCTP(r->out.handle);
return WERR_INVALID_PARAM;
}
 
@@ -1587,6 +1589,7 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
~(SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)) {
DEBUG(3, ("access DENIED for non-printserver bits\n"));
close_printer_handle(p, handle);
+   ZERO_STRUCTP(r->out.handle);
return WERR_ACCESS_DENIED;
}
 
@@ -1598,6 +1601,7 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
 
if (!lp_ms_add_printer_wizard()) {
close_printer_handle(p, handle);
+   ZERO_STRUCTP(r->out.handle);
return WERR_ACCESS_DENIED;
}
 
@@ -1613,6 +1617,7 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
p->server_info->ptok,
lp_printer_admin(snum))) {
close_printer_handle(p, handle);
+   ZERO_STRUCTP(r->out.handle);
return WERR_ACCESS_DENIED;
}
 
@@ -1635,6 +1640,7 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
 
if (!get_printer_snum(p, handle, &snum, NULL)) {
close_printer_handle(p, handle);
+   ZERO_STRUCTP(r->out.handle);
return WERR_BADFID;
}
 
@@ -1660,6 +1666,7 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
 
if ( !check_access(get_client_fd(), lp_hostsallow(snum), 
lp_hostsdeny(snum)) ) {
DEBUG(3, ("access DENIED (hosts allow/deny) for printer 
open\n"));
+   ZERO_STRUCTP(r->out.handle);
return WERR_ACCESS_DENIED;
}
 
@@ -1669,12 +1676,14 @@ WERROR _spoolss_OpenPrinterEx(pipes_struct *p,
r->in.access_mask)) {
DEBUG(3, ("access DENIED for printer open\n"));
close_printer_handle(p, handle);
+   ZERO_STRUCTP(r->out.handle);
return WERR_ACCESS_DENIED;
}
 
if ((r->in.access_mask & SPECIFIC_RIGHTS_MASK)& 
~(PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE)) {
DEBUG(3, ("access DENIE

[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1004-g4f80350

2009-02-19 Thread Günther Deschner
The branch, master has been updated
   via  4f803502ef0bca3fee5017469f858bea702b069d (commit)
   via  b3ba24582d251090ca4e87e2c213d8fb9cc86119 (commit)
   via  00725b7c6efd73921d89a4bdb0de76d185351f90 (commit)
  from  d0ee90ace9e63fd83c997503a694e4c87f8a7e0f (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 4f803502ef0bca3fee5017469f858bea702b069d
Author: Günther Deschner 
Date:   Thu Feb 19 17:39:36 2009 +0100

spoolss: add ndr_size_spoolss_StringArray to spoolss helper.

Guenther

commit b3ba24582d251090ca4e87e2c213d8fb9cc86119
Author: Günther Deschner 
Date:   Thu Feb 19 17:59:51 2009 +0100

s3: re-run make samba3-idl.

Guenther

commit 00725b7c6efd73921d89a4bdb0de76d185351f90
Author: Günther Deschner 
Date:   Thu Feb 19 17:38:47 2009 +0100

spoolss: remove gensize calculation from spoolss_StringArray. Thanks metze!

Guenther

---

Summary of changes:
 librpc/gen_ndr/ndr_spoolss.c |5 -
 librpc/gen_ndr/ndr_spoolss.h |1 -
 librpc/gen_ndr/spoolss.h |2 +-
 librpc/idl/spoolss.idl   |2 +-
 librpc/ndr/ndr_spoolss_buf.c |   10 ++
 librpc/ndr/ndr_spoolss_buf.h |1 +
 6 files changed, 13 insertions(+), 8 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index f7f08e5..9ec3f35 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -4736,11 +4736,6 @@ _PUBLIC_ void ndr_print_spoolss_StringArray(struct 
ndr_print *ndr, const char *n
ndr->depth--;
 }
 
-_PUBLIC_ size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray 
*r, struct smb_iconv_convenience *ic, int flags)
-{
-   return ndr_size_struct(r, flags, 
(ndr_push_flags_fn_t)ndr_push_spoolss_StringArray, ic);
-}
-
 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, 
int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
 {
if (ndr_flags & NDR_SCALARS) {
diff --git a/librpc/gen_ndr/ndr_spoolss.h b/librpc/gen_ndr/ndr_spoolss.h
index 3dc9296..f8d97c1 100644
--- a/librpc/gen_ndr/ndr_spoolss.h
+++ b/librpc/gen_ndr/ndr_spoolss.h
@@ -255,7 +255,6 @@ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print 
*ndr, const char *name
 enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int 
ndr_flags, const struct spoolss_StringArray *r);
 enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int 
ndr_flags, struct spoolss_StringArray *r);
 void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, 
const struct spoolss_StringArray *r);
-size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, 
struct smb_iconv_convenience *ic, int flags);
 void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, 
const struct spoolss_AddDriverInfo1 *r);
 void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char 
*name, enum spoolss_DriverOSVersion r);
 void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, 
const struct spoolss_AddDriverInfo2 *r);
diff --git a/librpc/gen_ndr/spoolss.h b/librpc/gen_ndr/spoolss.h
index 5d858ca..2faeea2 100644
--- a/librpc/gen_ndr/spoolss.h
+++ b/librpc/gen_ndr/spoolss.h
@@ -547,7 +547,7 @@ struct spoolss_SetPrinterInfoCtr {
 struct spoolss_StringArray {
uint32_t _ndr_size;/* 
[value((ndr_size_spoolss_StringArray(r,ndr->iconv_convenience,ndr->flags)-4)/2)]
 */
const char ** string;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
-}/* [gensize,public] */;
+}/* [public] */;
 
 struct spoolss_AddDriverInfo1 {
const char *driver_name;/* [unique,charset(UTF16)] */
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index 22913f7..4bb68fa 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -619,7 +619,7 @@ import "misc.idl", "security.idl", "winreg.idl";
/**/
/* Function: 0x09 */
 
-   typedef [public,gensize] struct {
+   typedef [public] struct {
[value((ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, 
ndr->flags)-4)/2)] uint32 _ndr_size;
/*[subcontext(0),subcontext_size(_ndr_size*2)]*/ nstring_array 
string;
} spoolss_StringArray;
diff --git a/librpc/ndr/ndr_spoolss_buf.c b/librpc/ndr/ndr_spoolss_buf.c
index e74b0a9..d7e28cc 100644
--- a/librpc/ndr/ndr_spoolss_buf.c
+++ b/librpc/ndr/ndr_spoolss_buf.c
@@ -534,3 +534,13 @@ uint32_t _ndr_size_spoolss_DeviceMode(struct 
spoolss_DeviceMode *devmode, struct
if (!devmode) return 0;
return ndr_size_spoolss_DeviceMode(devmode,ic,flags);
 }
+
+_PUBLIC_ size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray 
*r, struct smb_iconv_convenience *ic, int flags)
+{
+   if (!r) {
+   return 4;
+   }
+
+   return ndr_siz

[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1001-gd0ee90a

2009-02-19 Thread Volker Lendecke
The branch, master has been updated
   via  d0ee90ace9e63fd83c997503a694e4c87f8a7e0f (commit)
  from  7d44cd50e8b420c6981ff93f42085ff664b686c5 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit d0ee90ace9e63fd83c997503a694e4c87f8a7e0f
Author: Volker Lendecke 
Date:   Thu Feb 19 14:16:44 2009 +0100

Fix a buffer handling bug when adding lots of registry keys

This is *ancient*... From 2002, and nobody noticed until someone added lots 
of
shares using net conf... :-)

---

Summary of changes:
 source3/registry/reg_backend_db.c |   33 -
 1 files changed, 24 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/registry/reg_backend_db.c 
b/source3/registry/reg_backend_db.c
index a9bb7b1..612b448 100644
--- a/source3/registry/reg_backend_db.c
+++ b/source3/registry/reg_backend_db.c
@@ -536,21 +536,36 @@ static bool regdb_store_keys_internal(const char *key, 
REGSUBKEY_CTR *ctr)
/* pack all the strings */
 
for (i=0; i buflen) {
-   /* allocate some extra space */
-   buffer = (uint8 *)SMB_REALLOC(buffer, len*2);
+   size_t thistime;
+
+   thistime = tdb_pack(buffer+len, buflen-len, "f",
+   regsubkey_ctr_specific_key(ctr, i));
+   if (len+thistime > buflen) {
+   size_t thistime2;
+   /*
+* tdb_pack hasn't done anything because of the short
+* buffer, allocate extra space.
+*/
+   buffer = SMB_REALLOC_ARRAY(buffer, uint8_t,
+  (len+thistime)*2);
if(buffer == NULL) {
DEBUG(0, ("regdb_store_keys: Failed to realloc "
- "memory of size [%d]\n", len*2));
+ "memory of size [%d]\n",
+ (len+thistime)*2));
+   ret = false;
+   goto done;
+   }
+   buflen = (len+thistime)*2;
+   thistime2 = tdb_pack(
+   buffer+len, buflen-len, "f",
+   regsubkey_ctr_specific_key(ctr, i));
+   if (thistime2 != thistime) {
+   DEBUG(0, ("tdb_pack failed\n"));
ret = false;
goto done;
}
-   buflen = len*2;
-   len = tdb_pack(buffer+len, buflen-len, "f",
-  regsubkey_ctr_specific_key(ctr, i));
}
+   len += thistime;
}
 
/* finally write out the data */


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4986-g13f0a29

2009-02-19 Thread Volker Lendecke
The branch, v3-3-test has been updated
   via  13f0a2903257677cc107f861e4ed2b58e52a1e21 (commit)
  from  3d13df93f0ffaa518a576191a0715add878a7635 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -
commit 13f0a2903257677cc107f861e4ed2b58e52a1e21
Author: Volker Lendecke 
Date:   Thu Feb 19 14:16:44 2009 +0100

Fix a buffer handling bug when adding lots of registry keys

This is *ancient*... From 2002, and nobody noticed until someone added lots 
of
shares using net conf... :-)
(cherry picked from commit 36ae846d15027df5e3a02ffabb08183dad9f6517)

---

Summary of changes:
 source/registry/reg_backend_db.c |   33 -
 1 files changed, 24 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c
index 6f4c614..a3cdaa7 100644
--- a/source/registry/reg_backend_db.c
+++ b/source/registry/reg_backend_db.c
@@ -536,21 +536,36 @@ static bool regdb_store_keys_internal(const char *key, 
REGSUBKEY_CTR *ctr)
/* pack all the strings */
 
for (i=0; i buflen) {
-   /* allocate some extra space */
-   buffer = (uint8 *)SMB_REALLOC(buffer, len*2);
+   size_t thistime;
+
+   thistime = tdb_pack(buffer+len, buflen-len, "f",
+   regsubkey_ctr_specific_key(ctr, i));
+   if (len+thistime > buflen) {
+   size_t thistime2;
+   /*
+* tdb_pack hasn't done anything because of the short
+* buffer, allocate extra space.
+*/
+   buffer = SMB_REALLOC_ARRAY(buffer, uint8_t,
+  (len+thistime)*2);
if(buffer == NULL) {
DEBUG(0, ("regdb_store_keys: Failed to realloc "
- "memory of size [%d]\n", len*2));
+ "memory of size [%d]\n",
+ (len+thistime)*2));
+   ret = false;
+   goto done;
+   }
+   buflen = (len+thistime)*2;
+   thistime2 = tdb_pack(
+   buffer+len, buflen-len, "f",
+   regsubkey_ctr_specific_key(ctr, i));
+   if (thistime2 != thistime) {
+   DEBUG(0, ("tdb_pack failed\n"));
ret = false;
goto done;
}
-   buflen = len*2;
-   len = tdb_pack(buffer+len, buflen-len, "f",
-  regsubkey_ctr_specific_key(ctr, i));
}
+   len += thistime;
}
 
/* finally write out the data */


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-3476-g36ae846

2009-02-19 Thread Volker Lendecke
The branch, v3-2-test has been updated
   via  36ae846d15027df5e3a02ffabb08183dad9f6517 (commit)
  from  301b23cf22ce1db04781b85954155fc93f4caee3 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -
commit 36ae846d15027df5e3a02ffabb08183dad9f6517
Author: Volker Lendecke 
Date:   Thu Feb 19 14:16:44 2009 +0100

Fix a buffer handling bug when adding lots of registry keys

This is *ancient*... From 2002, and nobody noticed until someone added lots 
of
shares using net conf... :-)

---

Summary of changes:
 source/registry/reg_backend_db.c |   33 -
 1 files changed, 24 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c
index 52a0150..12ccc16 100644
--- a/source/registry/reg_backend_db.c
+++ b/source/registry/reg_backend_db.c
@@ -487,21 +487,36 @@ static bool regdb_store_keys_internal(const char *key, 
REGSUBKEY_CTR *ctr)
/* pack all the strings */
 
for (i=0; i buflen) {
-   /* allocate some extra space */
-   buffer = (uint8 *)SMB_REALLOC(buffer, len*2);
+   size_t thistime;
+
+   thistime = tdb_pack(buffer+len, buflen-len, "f",
+   regsubkey_ctr_specific_key(ctr, i));
+   if (len+thistime > buflen) {
+   size_t thistime2;
+   /*
+* tdb_pack hasn't done anything because of the short
+* buffer, allocate extra space.
+*/
+   buffer = SMB_REALLOC_ARRAY(buffer, uint8_t,
+  (len+thistime)*2);
if(buffer == NULL) {
DEBUG(0, ("regdb_store_keys: Failed to realloc "
- "memory of size [%d]\n", len*2));
+ "memory of size [%d]\n",
+ (len+thistime)*2));
+   ret = false;
+   goto done;
+   }
+   buflen = (len+thistime)*2;
+   thistime2 = tdb_pack(
+   buffer+len, buflen-len, "f",
+   regsubkey_ctr_specific_key(ctr, i));
+   if (thistime2 != thistime) {
+   DEBUG(0, ("tdb_pack failed\n"));
ret = false;
goto done;
}
-   buflen = len*2;
-   len = tdb_pack(buffer+len, buflen-len, "f",
-  regsubkey_ctr_specific_key(ctr, i));
}
+   len += thistime;
}
 
/* finally write out the data */


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1000-g7d44cd5

2009-02-19 Thread Günther Deschner
The branch, master has been updated
   via  7d44cd50e8b420c6981ff93f42085ff664b686c5 (commit)
   via  1852cd0a6075279d48689a2c4c1cd4e25d2e3452 (commit)
  from  e9d5405948e35a8eec0b49cc6c066278cb523397 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 7d44cd50e8b420c6981ff93f42085ff664b686c5
Author: Günther Deschner 
Date:   Thu Feb 19 13:06:11 2009 +0100

s3: re-run make samba3-idl.

Guenther

commit 1852cd0a6075279d48689a2c4c1cd4e25d2e3452
Author: Günther Deschner 
Date:   Thu Feb 19 10:45:12 2009 +0100

spoolss: fill in spoolss_GetPrintProcessorDirectory.

Guenther

---

Summary of changes:
 librpc/gen_ndr/cli_spoolss.c |   16 +++
 librpc/gen_ndr/cli_spoolss.h |7 +
 librpc/gen_ndr/ndr_spoolss.c |  285 ++
 librpc/gen_ndr/ndr_spoolss.h |8 ++
 librpc/gen_ndr/spoolss.h |   18 +++
 librpc/gen_ndr/srv_spoolss.c |   24 
 librpc/idl/spoolss.idl   |   18 +++-
 7 files changed, 375 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/cli_spoolss.c b/librpc/gen_ndr/cli_spoolss.c
index 3793dfe..02a05b9 100644
--- a/librpc/gen_ndr/cli_spoolss.c
+++ b/librpc/gen_ndr/cli_spoolss.c
@@ -832,12 +832,24 @@ NTSTATUS rpccli_spoolss_EnumPrintProcessors(struct 
rpc_pipe_client *cli,
 
 NTSTATUS rpccli_spoolss_GetPrintProcessorDirectory(struct rpc_pipe_client *cli,
   TALLOC_CTX *mem_ctx,
+  const char *server /* [in] 
[unique,charset(UTF16)] */,
+  const char *environment /* 
[in] [unique,charset(UTF16)] */,
+  uint32_t level /* [in]  */,
+  DATA_BLOB *buffer /* [in] 
[unique] */,
+  uint32_t offered /* [in]  */,
+  union 
spoolss_PrintProcessorDirectoryInfo *info /* [out] 
[unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
+  uint32_t *needed /* [out] 
[ref] */,
   WERROR *werror)
 {
struct spoolss_GetPrintProcessorDirectory r;
NTSTATUS status;
 
/* In parameters */
+   r.in.server = server;
+   r.in.environment = environment;
+   r.in.level = level;
+   r.in.buffer = buffer;
+   r.in.offered = offered;
 
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_GetPrintProcessorDirectory, &r);
@@ -862,6 +874,10 @@ NTSTATUS rpccli_spoolss_GetPrintProcessorDirectory(struct 
rpc_pipe_client *cli,
}
 
/* Return variables */
+   if (info && r.out.info) {
+   *info = *r.out.info;
+   }
+   *needed = *r.out.needed;
 
/* Return result */
if (werror) {
diff --git a/librpc/gen_ndr/cli_spoolss.h b/librpc/gen_ndr/cli_spoolss.h
index 06e9ec9..bb38d59 100644
--- a/librpc/gen_ndr/cli_spoolss.h
+++ b/librpc/gen_ndr/cli_spoolss.h
@@ -128,6 +128,13 @@ NTSTATUS rpccli_spoolss_EnumPrintProcessors(struct 
rpc_pipe_client *cli,
WERROR *werror);
 NTSTATUS rpccli_spoolss_GetPrintProcessorDirectory(struct rpc_pipe_client *cli,
   TALLOC_CTX *mem_ctx,
+  const char *server /* [in] 
[unique,charset(UTF16)] */,
+  const char *environment /* 
[in] [unique,charset(UTF16)] */,
+  uint32_t level /* [in]  */,
+  DATA_BLOB *buffer /* [in] 
[unique] */,
+  uint32_t offered /* [in]  */,
+  union 
spoolss_PrintProcessorDirectoryInfo *info /* [out] 
[unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
+  uint32_t *needed /* [out] 
[ref] */,
   WERROR *werror);
 NTSTATUS rpccli_spoolss_StartDocPrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index 4aafa4a..f7f08e5 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -11068,6 +11068,138 @@ _PUBLIC_ void 
ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const
}
 }
 
+_PUBLIC_ enum ndr_err_code 
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int 
ndr_flags, const struct spoolss_PrintProcessor

[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4985-g3d13df9

2009-02-19 Thread Günther Deschner
The branch, v3-3-test has been updated
   via  3d13df93f0ffaa518a576191a0715add878a7635 (commit)
  from  6be9d9e33c4c6a9f25682b0716ca13392418d12e (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -
commit 3d13df93f0ffaa518a576191a0715add878a7635
Author: Günther Deschner 
Date:   Thu Feb 19 02:35:20 2009 +0100

s3-libnet: fix coverity #848 (UNINIT).

Guenther
(cherry picked from commit e9d5405948e35a8eec0b49cc6c066278cb523397)

---

Summary of changes:
 source/libnet/libnet_samsync_keytab.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libnet/libnet_samsync_keytab.c 
b/source/libnet/libnet_samsync_keytab.c
index cdb3446..7684063 100644
--- a/source/libnet/libnet_samsync_keytab.c
+++ b/source/libnet/libnet_samsync_keytab.c
@@ -111,7 +111,7 @@ static NTSTATUS init_keytab(TALLOC_CTX *mem_ctx,
 {
krb5_error_code ret = 0;
NTSTATUS status;
-   struct libnet_keytab_context *keytab_ctx;
+   struct libnet_keytab_context *keytab_ctx = NULL;
struct libnet_keytab_entry *entry;
uint64_t old_sequence_num = 0;
const char *principal = NULL;


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-998-ge9d5405

2009-02-19 Thread Günther Deschner
The branch, master has been updated
   via  e9d5405948e35a8eec0b49cc6c066278cb523397 (commit)
  from  052f3f0d4da01d27835ef265036a36d20941f1a8 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit e9d5405948e35a8eec0b49cc6c066278cb523397
Author: Günther Deschner 
Date:   Thu Feb 19 02:35:20 2009 +0100

s3-libnet: fix coverity #848 (UNINIT).

Guenther

---

Summary of changes:
 source3/libnet/libnet_samsync_keytab.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/libnet/libnet_samsync_keytab.c 
b/source3/libnet/libnet_samsync_keytab.c
index cdb3446..7684063 100644
--- a/source3/libnet/libnet_samsync_keytab.c
+++ b/source3/libnet/libnet_samsync_keytab.c
@@ -111,7 +111,7 @@ static NTSTATUS init_keytab(TALLOC_CTX *mem_ctx,
 {
krb5_error_code ret = 0;
NTSTATUS status;
-   struct libnet_keytab_context *keytab_ctx;
+   struct libnet_keytab_context *keytab_ctx = NULL;
struct libnet_keytab_entry *entry;
uint64_t old_sequence_num = 0;
const char *principal = NULL;


-- 
Samba Shared Repository


Re: [SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-984-gc192144

2009-02-19 Thread Volker Lendecke
On Thu, Feb 19, 2009 at 11:17:50AM +0100, Stefan (metze) Metzmacher wrote:
> > commit c441f58dedc465f59060296815a0bc7f9aeb743f
> > Author: todd stecher 
> > Date:   Tue Feb 17 16:16:35 2009 -0800
> > 
> > S3: Allow SMBD processes to survive in low memory condidtions
> > 
> > This commit adds a configure argument which allows for setting 
> > MADV_PROTECT
> > in the madvise() API.  With this enabled the kernel won't kill SMBD when
> > it's running low on memory.
> > 
> 
> wouldn't it make sense to add this call to become_daemon() so that
> nmbd and winbindd also get the protection.
> 
> I'm also wondering if we really want that the child (per connection)
> smbds are also protected.

Yep, I think at most the parent smbd should be protected if
at all. We've had bad memleaks in the past and I'm sure in
certain workloads we still have them, and the kernel should
be given a chance to kill the main culprit.

Having all smbd's protected this way is definitely wrong.

Volker


pgpwnRO2upSgU.pgp
Description: PGP signature


[SCM] Samba Shared Repository - branch v3-3-stable updated - release-3-3-0-114-g0523f24

2009-02-19 Thread Karolin Seeger
The branch, v3-3-stable has been updated
   via  0523f2463423067e36fb975cba891f25a87ee2fe (commit)
  from  81022baa0c873ee24595973987cd705c0ad849f0 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-stable


- Log -
commit 0523f2463423067e36fb975cba891f25a87ee2fe
Author: Karolin Seeger 
Date:   Thu Feb 19 12:27:50 2009 +0100

WHATSNEW: Jeremy fixed CID 602, not Volker.

Thanks Volker for reading the release notes! ;-)

Karolin
(cherry picked from commit 6be9d9e33c4c6a9f25682b0716ca13392418d12e)

---

Summary of changes:
 WHATSNEW.txt |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index d23079a..cdce940 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -35,7 +35,7 @@ o   Jeremy Allison 
 * BUG 6090: Fix renaming/deleting a "not matching/resolving" symlink.
 * BUG 6099: Try to fix domain join of Win7 Beta.
 * BUG 6117: Fix core dump of pdbedit -a.
-* Fix Coverity IDs 115, 116, 117.
+* Fix Coverity IDs 115, 116, 117, 602.
 * Fix warning (bad handler prototype).
 * Unify the detection of the timespec code in configure.in, and the
   application of it in time.c.
@@ -80,7 +80,7 @@ o   Guenter Kukkukk 
 
 o   Volker Lendecke 
 * BUG 5798: CFLAGS info lost in configure.
-* Fix Coverity IDs 602, 740, 742, 744, 745, 876, 879, 880.
+* Fix Coverity IDs 740, 742, 744, 745, 876, 879, 880.
 * Fix remotely adding a share via the Windows MMC.
 * Avoid valgrind errors.
 * Fix 'net rpc join' for users with the SeMachineAccountPrivilege.


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4984-g6be9d9e

2009-02-19 Thread Karolin Seeger
The branch, v3-3-test has been updated
   via  6be9d9e33c4c6a9f25682b0716ca13392418d12e (commit)
  from  5af95977593a790e732bb3bf09ad7cc4832e663f (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -
commit 6be9d9e33c4c6a9f25682b0716ca13392418d12e
Author: Karolin Seeger 
Date:   Thu Feb 19 12:27:50 2009 +0100

WHATSNEW: Jeremy fixed CID 602, not Volker.

Thanks Volker for reading the release notes! ;-)

Karolin

---

Summary of changes:
 WHATSNEW.txt |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index d23079a..cdce940 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -35,7 +35,7 @@ o   Jeremy Allison 
 * BUG 6090: Fix renaming/deleting a "not matching/resolving" symlink.
 * BUG 6099: Try to fix domain join of Win7 Beta.
 * BUG 6117: Fix core dump of pdbedit -a.
-* Fix Coverity IDs 115, 116, 117.
+* Fix Coverity IDs 115, 116, 117, 602.
 * Fix warning (bad handler prototype).
 * Unify the detection of the timespec code in configure.in, and the
   application of it in time.c.
@@ -80,7 +80,7 @@ o   Guenter Kukkukk 
 
 o   Volker Lendecke 
 * BUG 5798: CFLAGS info lost in configure.
-* Fix Coverity IDs 602, 740, 742, 744, 745, 876, 879, 880.
+* Fix Coverity IDs 740, 742, 744, 745, 876, 879, 880.
 * Fix remotely adding a share via the Windows MMC.
 * Avoid valgrind errors.
 * Fix 'net rpc join' for users with the SeMachineAccountPrivilege.


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-997-g052f3f0

2009-02-19 Thread Stefan Metzmacher
The branch, master has been updated
   via  052f3f0d4da01d27835ef265036a36d20941f1a8 (commit)
   via  7082e4526f268fa1d09d04b246025bce3174aab3 (commit)
   via  d61e152b2970057a6ab34f8371fd19bd922b284e (commit)
   via  6563c2b7e4c15cf220ed618da72331d0aca4e282 (commit)
  from  96b3242f124d60fd8d8b6f5a34b57c26c42dfd14 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 052f3f0d4da01d27835ef265036a36d20941f1a8
Author: Stefan Metzmacher 
Date:   Thu Feb 19 11:12:33 2009 +0100

s4:librpc/ndr: if uninitialized variable in string_array code

metze

commit 7082e4526f268fa1d09d04b246025bce3174aab3
Author: Stefan Metzmacher 
Date:   Thu Feb 19 11:11:28 2009 +0100

s3:librpc/ndr: if uninitialized variable in string_array code

metze

commit d61e152b2970057a6ab34f8371fd19bd922b284e
Author: Stefan Metzmacher 
Date:   Thu Feb 19 11:11:04 2009 +0100

librpc: rerun make idl

commit 6563c2b7e4c15cf220ed618da72331d0aca4e282
Author: Stefan Metzmacher 
Date:   Thu Feb 19 10:32:48 2009 +0100

pidl:NDR/Parser: don't call [noopnum] function when creating the 
ndr_interface_table

metze

---

Summary of changes:
 librpc/gen_ndr/ndr_spoolss.c |2 +-
 pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm |6 +++---
 source3/librpc/ndr/ndr_string.c  |2 +-
 source4/librpc/ndr/ndr_string.c  |2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index 23eccfc..4aafa4a 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -23639,7 +23639,7 @@ const struct ndr_interface_table ndr_table_spoolss = {
NDR_SPOOLSS_VERSION
},
.helpstring = NDR_SPOOLSS_HELPSTRING,
-   .num_calls  = 114,
+   .num_calls  = 96,
.calls  = spoolss_calls,
.endpoints  = &spoolss_endpoints,
.authservices   = &spoolss_authservices
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm 
b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
index 84752da..af6885f 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
@@ -2236,7 +2236,7 @@ sub AuthServiceStruct($$$)
 sub FunctionCallEntry($$)
 {
my ($self, $d) = @_;
-   return if not defined($d->{OPNUM});
+   return 0 if not defined($d->{OPNUM});
$self->pidl("\t{");
$self->pidl("\t\t\"$d->{NAME}\",");
$self->pidl("\t\tsizeof(struct $d->{NAME}),");
@@ -2245,6 +2245,7 @@ sub FunctionCallEntry($$)
$self->pidl("\t\t(ndr_print_function_t) ndr_print_$d->{NAME},");
$self->pidl("\t\t".($d->{ASYNC}?"true":"false").",");
$self->pidl("\t},");
+   return 1;
 }
 
 #
@@ -2261,8 +2262,7 @@ sub FunctionTable($$)
$self->pidl("static const struct ndr_interface_call 
$interface->{NAME}\_calls[] = {");
 
foreach my $d 
(@{$interface->{INHERITED_FUNCTIONS}},@{$interface->{FUNCTIONS}}) {
-   $self->FunctionCallEntry($d);
-   $count++;
+   $count += $self->FunctionCallEntry($d);
}
$self->pidl("\t{ NULL, 0, NULL, NULL, NULL, false }");
$self->pidl("};");
diff --git a/source3/librpc/ndr/ndr_string.c b/source3/librpc/ndr/ndr_string.c
index 985d0f4..519be7b 100644
--- a/source3/librpc/ndr/ndr_string.c
+++ b/source3/librpc/ndr/ndr_string.c
@@ -443,7 +443,7 @@ _PUBLIC_ uint32_t ndr_size_string(int ret, const char * 
const* string, int flags
 */
 _PUBLIC_ enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int 
ndr_flags, const char ***_a)
 {
-   const char **a = *_a;
+   const char **a = NULL;
uint32_t count;
unsigned flags = ndr->flags;
unsigned saved_flags = ndr->flags;
diff --git a/source4/librpc/ndr/ndr_string.c b/source4/librpc/ndr/ndr_string.c
index a2fcdea..1b5da2d 100644
--- a/source4/librpc/ndr/ndr_string.c
+++ b/source4/librpc/ndr/ndr_string.c
@@ -443,7 +443,7 @@ _PUBLIC_ uint32_t ndr_size_string(int ret, const char * 
const* string, int flags
 */
 _PUBLIC_ enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int 
ndr_flags, const char ***_a)
 {
-   const char **a = *_a;
+   const char **a = NULL;
uint32_t count;
unsigned flags = ndr->flags;
unsigned saved_flags = ndr->flags;


-- 
Samba Shared Repository


Re: [SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-984-gc192144

2009-02-19 Thread Stefan (metze) Metzmacher
Hi Todd, hi Steven,

> commit c441f58dedc465f59060296815a0bc7f9aeb743f
> Author: todd stecher 
> Date:   Tue Feb 17 16:16:35 2009 -0800
> 
> S3: Allow SMBD processes to survive in low memory condidtions
> 
> This commit adds a configure argument which allows for setting 
> MADV_PROTECT
> in the madvise() API.  With this enabled the kernel won't kill SMBD when
> it's running low on memory.
> 

wouldn't it make sense to add this call to become_daemon() so that
nmbd and winbindd also get the protection.

I'm also wondering if we really want that the child (per connection)
smbds are also protected.

metze



signature.asc
Description: OpenPGP digital signature


[SCM] Samba Shared Repository - branch v3-3-stable updated - release-3-3-0-113-g81022ba

2009-02-19 Thread Karolin Seeger
The branch, v3-3-stable has been updated
   via  81022baa0c873ee24595973987cd705c0ad849f0 (commit)
   via  f348edd0f77cca91d5c02482cf1dab79f2c1b500 (commit)
   via  b1e95087c7b154b8028b760c694df7711024cd01 (commit)
  from  b0d786275fa3b7d59fce6044d59a6cdeb7f22f95 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-stable


- Log -
commit 81022baa0c873ee24595973987cd705c0ad849f0
Author: Karolin Seeger 
Date:   Thu Feb 19 10:07:40 2009 +0100

WHATSNEW: Update changes since 3.3.0.

Karolin
(cherry picked from commit 5af95977593a790e732bb3bf09ad7cc4832e663f)

commit f348edd0f77cca91d5c02482cf1dab79f2c1b500
Author: Jeremy Allison 
Date:   Wed Feb 18 16:00:34 2009 -0800

Gah, typo :-(. Sorry.
(cherry picked from commit 88041d92ae2a619d5b4d4ad010ef7366b5c05c3f)

commit b1e95087c7b154b8028b760c694df7711024cd01
Author: Jeremy Allison 
Date:   Wed Feb 18 15:43:03 2009 -0800

Fix coverity CID-602. Possible use of uninitialized var.
Jeremy.
(cherry picked from commit 43db14008eb660f1b1f21e1ff6dd2d340d1106ab)

---

Summary of changes:
 WHATSNEW.txt  |2 +-
 source/libsmb/namequery.c |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 92ab652..d23079a 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -80,7 +80,7 @@ o   Guenter Kukkukk 
 
 o   Volker Lendecke 
 * BUG 5798: CFLAGS info lost in configure.
-* Fix Coverity IDs 740, 742, 744, 745, 876, 879, 880.
+* Fix Coverity IDs 602, 740, 742, 744, 745, 876, 879, 880.
 * Fix remotely adding a share via the Windows MMC.
 * Avoid valgrind errors.
 * Fix 'net rpc join' for users with the SeMachineAccountPrivilege.
diff --git a/source/libsmb/namequery.c b/source/libsmb/namequery.c
index dd3cd56..cf8c20e 100644
--- a/source/libsmb/namequery.c
+++ b/source/libsmb/namequery.c
@@ -2141,7 +2141,7 @@ NTSTATUS get_sorted_dc_list( const char *domain,
int *count,
bool ads_only )
 {
-   bool ordered;
+   bool ordered = false;
NTSTATUS status;
enum dc_lookup_type lookup_type = DC_NORMAL_LOOKUP;
 


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4983-g5af9597

2009-02-19 Thread Karolin Seeger
The branch, v3-3-test has been updated
   via  5af95977593a790e732bb3bf09ad7cc4832e663f (commit)
  from  88041d92ae2a619d5b4d4ad010ef7366b5c05c3f (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -
commit 5af95977593a790e732bb3bf09ad7cc4832e663f
Author: Karolin Seeger 
Date:   Thu Feb 19 10:07:40 2009 +0100

WHATSNEW: Update changes since 3.3.0.

Karolin

---

Summary of changes:
 WHATSNEW.txt |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 92ab652..d23079a 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -80,7 +80,7 @@ o   Guenter Kukkukk 
 
 o   Volker Lendecke 
 * BUG 5798: CFLAGS info lost in configure.
-* Fix Coverity IDs 740, 742, 744, 745, 876, 879, 880.
+* Fix Coverity IDs 602, 740, 742, 744, 745, 876, 879, 880.
 * Fix remotely adding a share via the Windows MMC.
 * Avoid valgrind errors.
 * Fix 'net rpc join' for users with the SeMachineAccountPrivilege.


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-993-g96b3242

2009-02-19 Thread Tim Prouty
The branch, master has been updated
   via  96b3242f124d60fd8d8b6f5a34b57c26c42dfd14 (commit)
   via  59d21afa83b3d7cb996500f3ce2b1317f4c471c7 (commit)
   via  fdcd5a3a201489b1408951936e9bfc0871834a29 (commit)
  from  6bac890533112e6c4f853c0b77a9dd431c471cee (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -
commit 96b3242f124d60fd8d8b6f5a34b57c26c42dfd14
Author: Zack Kirsch 
Date:   Tue Feb 17 21:03:33 2009 -0800

s3 OneFS: Fixes "inherit permissions" and "nt acl support" for Onefs.

commit 59d21afa83b3d7cb996500f3ce2b1317f4c471c7
Author: todd stecher 
Date:   Wed Feb 18 00:02:51 2009 -0800

S3: Dumb down debug spew in perfcount module code

commit fdcd5a3a201489b1408951936e9bfc0871834a29
Author: todd stecher 
Date:   Mon Feb 16 20:45:45 2009 -0800

S3: Make changes to perfcount API set for when a single request leads to 
multiple replies

(e.g. reply_echo). Change test and onefs modules to match new api set 
(thanks Volker!).

---

Summary of changes:
 source3/include/smb_perfcount.h   |8 -
 source3/modules/onefs_system.c|   12 ++-
 source3/modules/perfcount_onefs.c |   64 +---
 source3/modules/perfcount_test.c  |   47 +++
 source3/smbd/perfcount.c  |8 ++--
 source3/smbd/reply.c  |   17 +-
 6 files changed, 135 insertions(+), 21 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/smb_perfcount.h b/source3/include/smb_perfcount.h
index 218045b..01a539d 100644
--- a/source3/include/smb_perfcount.h
+++ b/source3/include/smb_perfcount.h
@@ -39,6 +39,8 @@ struct smb_perfcount_handlers {
  uint64_t out_bytes);
void (*perfcount_set_client) (struct smb_perfcount_data *pcd, uid_t uid,
  const char *user, const char *domain);
+   void (*perfcount_copy_context) (struct smb_perfcount_data *pcd,
+   struct smb_perfcount_data *new_pcd);
void (*perfcount_defer_op) (struct smb_perfcount_data *pcd,
struct smb_perfcount_data *def_pcd);
void (*perfcount_end) (struct smb_perfcount_data *pcd);
@@ -86,13 +88,17 @@ void smb_init_perfcount_data(struct smb_perfcount_data 
*pcd);
(_pcd_)->handlers->perfcount_set_msglen_out((_pcd_), (_out_));\
 } while (0)
 
-
 #define SMB_PERFCOUNT_SET_CLIENT(_pcd_,_uid_, _user_, _domain_) \
 do {if((_pcd_) && (_pcd_)->handlers) \
(_pcd_)->handlers->perfcount_set_client((_pcd_), (_uid_), \
   (_user_), (_domain_)); \
 } while (0)
 
+#define SMB_PERFCOUNT_COPY_CONTEXT(_pcd_, _new_pcd_) \
+do {if((_pcd_) && (_pcd_)->handlers) \
+   (_pcd_)->handlers->perfcount_copy_context((_pcd_), (_new_pcd_)); \
+} while (0)
+
 #define SMB_PERFCOUNT_DEFER_OP(_pcd_, _def_pcd_) \
 do {if((_pcd_) && (_pcd_)->handlers) \
(_pcd_)->handlers->perfcount_defer_op((_pcd_), (_def_pcd_)); \
diff --git a/source3/modules/onefs_system.c b/source3/modules/onefs_system.c
index b17cfe9..6f93d9f 100644
--- a/source3/modules/onefs_system.c
+++ b/source3/modules/onefs_system.c
@@ -93,6 +93,7 @@ int onefs_sys_create_file(connection_struct *conn,
int secinfo = 0;
int ret_fd = -1;
uint32_t onefs_dos_attributes;
+   struct ifs_createfile_flags cf_flags = CF_FLAGS_NONE;
 
/* Setup security descriptor and get secinfo. */
if (sd != NULL) {
@@ -143,10 +144,19 @@ int onefs_sys_create_file(connection_struct *conn,
 
smlock_dump(10, psml);
 
+   /**
+* Deal with kernel creating Default ACLs. (Isilon bug 47447.)
+*
+* 1) "nt acl support = no", default_acl = no
+* 2) "inherit permissions = yes", default_acl = no
+*/
+   if (lp_nt_acl_support(SNUM(conn)) && !lp_inherit_perms(SNUM(conn)))
+   cf_flags = cf_flags_or(cf_flags, CF_FLAGS_DEFAULT_ACL);
+
ret_fd = ifs_createfile(base_fd, path,
(enum ifs_ace_rights)open_access_mask, flags & ~O_ACCMODE, mode,
onefs_oplock, id, psml, secinfo, pifs_sd, onefs_dos_attributes,
-   &onefs_granted_oplock);
+   cf_flags, &onefs_granted_oplock);
 
DEBUG(10,("onefs_sys_create_file(%s): ret_fd = %d, "
  "onefs_granted_oplock = %s\n",
diff --git a/source3/modules/perfcount_onefs.c 
b/source3/modules/perfcount_onefs.c
index a4fbe6a..9b35af6 100644
--- a/source3/modules/perfcount_onefs.c
+++ b/source3/modules/perfcount_onefs.c
@@ -29,7 +29,7 @@ struct onefs_op_counter {
 };
 
 struct onefs_stats_context {
-   bool deferred;
+   bool alloced;
struct isp_op_delta iod;
 
/* ANDX commands stats stored here */
@@ -107,7 +107,6 @@ static void onefs_smb