[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1024-g73d5f14
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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