svn commit: samba r15681 - branches/SAMBA_3_0/source/libsmb trunk/source/libsmb
Author: jerry Date: 2006-05-18 04:33:43 + (Thu, 18 May 2006) New Revision: 15681 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15681 Log: fix segv in 'kinit && net ads join' Modified: branches/SAMBA_3_0/source/libsmb/cliconnect.c trunk/source/libsmb/cliconnect.c Changeset: Modified: branches/SAMBA_3_0/source/libsmb/cliconnect.c === --- branches/SAMBA_3_0/source/libsmb/cliconnect.c 2006-05-18 04:13:07 UTC (rev 15680) +++ branches/SAMBA_3_0/source/libsmb/cliconnect.c 2006-05-18 04:33:43 UTC (rev 15681) @@ -1493,6 +1493,7 @@ { NTSTATUS nt_status; struct cli_state *cli = NULL; + int pw_len = password ? strlen(password)+1 : 0; nt_status = cli_start_connection(&cli, my_name, dest_host, dest_ip, port, signing_state, flags, retry); @@ -1501,9 +1502,7 @@ return nt_status; } - if (!cli_session_setup(cli, user, password, strlen(password)+1, - password, strlen(password)+1, - domain)) { + if (!cli_session_setup(cli, user, password, pw_len, password, pw_len, domain)) { if ((flags & CLI_FULL_CONNECTION_ANNONYMOUS_FALLBACK) && cli_session_setup(cli, "", "", 0, "", 0, domain)) { } else { @@ -1517,8 +1516,7 @@ } if (service) { - if (!cli_send_tconX(cli, service, service_type, - password, strlen(password)+1)) { + if (!cli_send_tconX(cli, service, service_type, password, pw_len)) { nt_status = cli_nt_error(cli); DEBUG(1,("failed tcon_X with %s\n", nt_errstr(nt_status))); cli_shutdown(cli); Modified: trunk/source/libsmb/cliconnect.c === --- trunk/source/libsmb/cliconnect.c2006-05-18 04:13:07 UTC (rev 15680) +++ trunk/source/libsmb/cliconnect.c2006-05-18 04:33:43 UTC (rev 15681) @@ -1493,6 +1493,7 @@ { NTSTATUS nt_status; struct cli_state *cli = NULL; + int pw_len = password ? strlen(password)+1 : 0; nt_status = cli_start_connection(&cli, my_name, dest_host, dest_ip, port, signing_state, flags, retry); @@ -1501,9 +1502,7 @@ return nt_status; } - if (!cli_session_setup(cli, user, password, strlen(password)+1, - password, strlen(password)+1, - domain)) { + if (!cli_session_setup(cli, user, password, pw_len, password, pw_len, domain)) { if ((flags & CLI_FULL_CONNECTION_ANNONYMOUS_FALLBACK) && cli_session_setup(cli, "", "", 0, "", 0, domain)) { } else { @@ -1517,8 +1516,7 @@ } if (service) { - if (!cli_send_tconX(cli, service, service_type, - password, strlen(password)+1)) { + if (!cli_send_tconX(cli, service, service_type, password, pw_len)) { nt_status = cli_nt_error(cli); DEBUG(1,("failed tcon_X with %s\n", nt_errstr(nt_status))); cli_shutdown(cli);
svn commit: samba r15680 - branches/SAMBA_3_0/source/utils trunk/source/utils
Author: jerry Date: 2006-05-18 04:13:07 + (Thu, 18 May 2006) New Revision: 15680 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15680 Log: use the user creds when calling net_set_machine_spn() rather than the machine creds (just like WinXP) Modified: branches/SAMBA_3_0/source/utils/net_ads.c trunk/source/utils/net_ads.c Changeset: Modified: branches/SAMBA_3_0/source/utils/net_ads.c === --- branches/SAMBA_3_0/source/utils/net_ads.c 2006-05-18 04:10:52 UTC (rev 15679) +++ branches/SAMBA_3_0/source/utils/net_ads.c 2006-05-18 04:13:07 UTC (rev 15680) @@ -1143,11 +1143,6 @@ ads_mod_str(ctx, &mods, "dNSHostName", my_fqdn); ads_mod_strlist(ctx, &mods, "servicePrincipalName", servicePrincipalName); -#if 0 - ads_mod_str(ctx, &mods, "userPrincipalName", host_upn); - ads_mod_str(ctx, &mods, "operatingSystem", "Samba"); - ads_mod_str(ctx, &mods, "operatingSystemVersion", SAMBA_VERSION_STRING); -#endif status = ads_gen_mod(ads_s, new_dn, mods); @@ -1164,7 +1159,6 @@ static ADS_STATUS net_precreate_machine_acct( ADS_STRUCT *ads, const char *ou ) { - ADS_STRUCT *ads_s = ads; ADS_STATUS rc = ADS_ERROR(LDAP_SERVER_DOWN); char *dn, *ou_str; LDAPMessage *res = NULL; @@ -1173,40 +1167,19 @@ asprintf(&dn, "%s,%s", ou_str, ads->config.bind_path); free(ou_str); - if ( !ads->ld ) { - ads_s = ads_init( ads->config.realm, NULL, ads->config.ldap_server_name ); - - if ( ads_s ) { - rc = ads_connect( ads_s ); - } - - if ( !ADS_ERR_OK(rc) ) { - goto done; - } - } - rc = ads_search_dn(ads, (void**)&res, dn, NULL); ads_msgfree(ads, res); - if (!ADS_ERR_OK(rc)) { - goto done; - } + if (ADS_ERR_OK(rc)) { + /* Attempt to create the machine account and bail if this fails. + Assume that the admin wants exactly what they requested */ - /* Attempt to create the machine account and bail if this fails. - Assume that the admin wants exactly what they requested */ - - rc = ads_create_machine_acct( ads, global_myname(), dn ); - if ( rc.error_type == ENUM_ADS_ERROR_LDAP && rc.err.rc == LDAP_ALREADY_EXISTS ) { - rc = ADS_SUCCESS; - goto done; + rc = ads_create_machine_acct( ads, global_myname(), dn ); + if ( rc.error_type == ENUM_ADS_ERROR_LDAP && rc.err.rc == LDAP_ALREADY_EXISTS ) { + rc = ADS_SUCCESS; + } } - if ( !ADS_ERR_OK(rc) ) { - goto done; - } -done: - if ( ads_s != ads ) - ads_destroy( &ads_s ); SAFE_FREE( dn ); return rc; @@ -1218,7 +1191,7 @@ int net_ads_join(int argc, const char **argv) { - ADS_STRUCT *ads, *ads_s; + ADS_STRUCT *ads; ADS_STATUS status; char *machine_account = NULL; const char *short_domain_name = NULL; @@ -1311,39 +1284,17 @@ return -1; } - /* From here on out, use the machine account. But first delete any - existing tickets based on the user's creds. */ - - ads_kdestroy( NULL ); + /* create the dNSHostName & servicePrincipalName values */ - status = ADS_ERROR(LDAP_SERVER_DOWN); - ads_s = ads_init( ads->server.realm, ads->server.workgroup, ads->server.ldap_server ); + status = net_set_machine_spn( ctx, ads ); + if ( !ADS_ERR_OK(status) ) { + d_fprintf(stderr, "Failed to set servicePrincipalNames. Only NTLM authentication will be possible.\n"); + d_fprintf(stderr, "Please ensure that the DNS domain of this server matches the AD domain,\n"); + d_fprintf(stderr, "Or rejoin with using Domain Admin credentials.\n"); - if ( ads_s ) { - asprintf( &ads_s->auth.user_name, "%s$", global_myname() ); - ads_s->auth.password = secrets_fetch_machine_password( short_domain_name, NULL, NULL ); - ads_s->auth.realm = SMB_STRDUP( lp_realm() ); - ads_kinit_password( ads_s ); - status = ads_connect( ads_s ); + /* don't fail */ } - if ( !ADS_ERR_OK(status) ) { - d_fprintf( stderr, "LDAP bind using machine credentials failed!\n"); - d_fprintf(stderr, "Only NTLM authentication will be possible.\n"); - } else { - /* create the dNSHostName & servicePrincipalName values */ - - status = net_set_machine_spn( ctx, ads_s ); - if ( !ADS_ERR_OK(status) ) { - d_fprintf(stderr, "Failed to set servicePrincipalNames.\n"); - d_f
svn commit: samba r15679 - branches/SAMBA_3_0/source/popt trunk/source/popt
Author: jerry Date: 2006-05-18 04:10:52 + (Thu, 18 May 2006) New Revision: 15679 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15679 Log: fix some popt warnings Modified: branches/SAMBA_3_0/source/popt/popt.c branches/SAMBA_3_0/source/popt/popt.h branches/SAMBA_3_0/source/popt/popthelp.c trunk/source/popt/popt.c trunk/source/popt/popt.h trunk/source/popt/popthelp.c Changeset: Modified: branches/SAMBA_3_0/source/popt/popt.c === --- branches/SAMBA_3_0/source/popt/popt.c 2006-05-18 04:05:37 UTC (rev 15678) +++ branches/SAMBA_3_0/source/popt/popt.c 2006-05-18 04:10:52 UTC (rev 15679) @@ -1153,7 +1153,7 @@ /[EMAIL PROTECTED]@*/ } -const char *const poptStrerror(const int error) +const char *poptStrerror(const int error) { switch (error) { case POPT_ERROR_NOARG: Modified: branches/SAMBA_3_0/source/popt/popt.h === --- branches/SAMBA_3_0/source/popt/popt.h 2006-05-18 04:05:37 UTC (rev 15678) +++ branches/SAMBA_3_0/source/popt/popt.h 2006-05-18 04:10:52 UTC (rev 15679) @@ -443,7 +443,7 @@ * @param errorpopt error * @return error string */ -/[EMAIL PROTECTED]@*/ const char *const poptStrerror(const int error) +/[EMAIL PROTECTED]@*/ const char* poptStrerror(const int error) /[EMAIL PROTECTED]/; /** \ingroup popt Modified: branches/SAMBA_3_0/source/popt/popthelp.c === --- branches/SAMBA_3_0/source/popt/popthelp.c 2006-05-18 04:05:37 UTC (rev 15678) +++ branches/SAMBA_3_0/source/popt/popthelp.c 2006-05-18 04:10:52 UTC (rev 15679) @@ -67,7 +67,7 @@ /** * @param tableoption(s) */ -/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char *const +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char * getTableTranslationDomain(/[EMAIL PROTECTED]@*/ const struct poptOption *table) /[EMAIL PROTECTED]/ { @@ -85,7 +85,7 @@ * @param opt option(s) * @param translation_domain translation domain */ -/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char *const +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char * getArgDescrip(const struct poptOption * opt, /[EMAIL PROTECTED]@*/ /* FIX: i18n macros disabled with lclint */ /[EMAIL PROTECTED]@*/ const char * translation_domain) Modified: trunk/source/popt/popt.c === --- trunk/source/popt/popt.c2006-05-18 04:05:37 UTC (rev 15678) +++ trunk/source/popt/popt.c2006-05-18 04:10:52 UTC (rev 15679) @@ -1153,7 +1153,7 @@ /[EMAIL PROTECTED]@*/ } -const char *const poptStrerror(const int error) +const char *poptStrerror(const int error) { switch (error) { case POPT_ERROR_NOARG: Modified: trunk/source/popt/popt.h === --- trunk/source/popt/popt.h2006-05-18 04:05:37 UTC (rev 15678) +++ trunk/source/popt/popt.h2006-05-18 04:10:52 UTC (rev 15679) @@ -443,7 +443,7 @@ * @param errorpopt error * @return error string */ -/[EMAIL PROTECTED]@*/ const char *const poptStrerror(const int error) +/[EMAIL PROTECTED]@*/ const char* poptStrerror(const int error) /[EMAIL PROTECTED]/; /** \ingroup popt Modified: trunk/source/popt/popthelp.c === --- trunk/source/popt/popthelp.c2006-05-18 04:05:37 UTC (rev 15678) +++ trunk/source/popt/popthelp.c2006-05-18 04:10:52 UTC (rev 15679) @@ -67,7 +67,7 @@ /** * @param tableoption(s) */ -/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char *const +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char * getTableTranslationDomain(/[EMAIL PROTECTED]@*/ const struct poptOption *table) /[EMAIL PROTECTED]/ { @@ -85,7 +85,7 @@ * @param opt option(s) * @param translation_domain translation domain */ -/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char *const +/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ static const char * getArgDescrip(const struct poptOption * opt, /[EMAIL PROTECTED]@*/ /* FIX: i18n macros disabled with lclint */ /[EMAIL PROTECTED]@*/ const char * translation_domain)
svn commit: samba r15678 - in trunk/source/smbd: .
Author: jra Date: 2006-05-18 04:05:37 + (Thu, 18 May 2006) New Revision: 15678 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15678 Log: Fix coverity error #293. Resource leak in error path in the changed NT_STATUS fsp code. Jeremy. Modified: trunk/source/smbd/files.c Changeset: Modified: trunk/source/smbd/files.c === --- trunk/source/smbd/files.c 2006-05-18 02:05:56 UTC (rev 15677) +++ trunk/source/smbd/files.c 2006-05-18 04:05:37 UTC (rev 15678) @@ -96,6 +96,7 @@ fsp->fh = SMB_MALLOC_P(struct fd_handle); if (!fsp->fh) { + SAFE_FREE(fsp); return NT_STATUS_NO_MEMORY; }
svn commit: samba r15677 - in trunk/source/auth: .
Author: jra Date: 2006-05-18 02:05:56 + (Thu, 18 May 2006) New Revision: 15677 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15677 Log: Fix meaningless debug statement from uninitialized variable. Spotted by "John E. Malmberg" <[EMAIL PROTECTED]>. Jeremy. Modified: trunk/source/auth/auth_util.c Changeset: Modified: trunk/source/auth/auth_util.c === --- trunk/source/auth/auth_util.c 2006-05-18 02:05:53 UTC (rev 15676) +++ trunk/source/auth/auth_util.c 2006-05-18 02:05:56 UTC (rev 15677) @@ -1198,7 +1198,6 @@ { TALLOC_CTX *mem_ctx; DOM_SID group_sid; - NTSTATUS status; BOOL ret; mem_ctx = talloc_new(NULL); @@ -1212,8 +1211,7 @@ TALLOC_FREE(mem_ctx); if (!ret) { - DEBUG(10, ("lookup_name(%s) failed: %s\n", groupname, - nt_errstr(status))); + DEBUG(10, ("lookup_name for (%s) failed.\n", groupname)); return False; }
svn commit: samba r15676 - in branches/SAMBA_3_0/source/auth: .
Author: jra Date: 2006-05-18 02:05:53 + (Thu, 18 May 2006) New Revision: 15676 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15676 Log: Fix meaningless debug statement from uninitialized variable. Spotted by "John E. Malmberg" <[EMAIL PROTECTED]>. Jeremy. Modified: branches/SAMBA_3_0/source/auth/auth_util.c Changeset: Modified: branches/SAMBA_3_0/source/auth/auth_util.c === --- branches/SAMBA_3_0/source/auth/auth_util.c 2006-05-18 01:45:18 UTC (rev 15675) +++ branches/SAMBA_3_0/source/auth/auth_util.c 2006-05-18 02:05:53 UTC (rev 15676) @@ -1198,7 +1198,6 @@ { TALLOC_CTX *mem_ctx; DOM_SID group_sid; - NTSTATUS status; BOOL ret; mem_ctx = talloc_new(NULL); @@ -1212,8 +1211,7 @@ TALLOC_FREE(mem_ctx); if (!ret) { - DEBUG(10, ("lookup_name(%s) failed: %s\n", groupname, - nt_errstr(status))); + DEBUG(10, ("lookup_name for (%s) failed.\n", groupname)); return False; }
svn commit: samba r15675 - in branches/SAMBA_3_0/source/nsswitch: .
Author: jra Date: 2006-05-18 01:45:18 + (Thu, 18 May 2006) New Revision: 15675 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15675 Log: Man pages say never look at the fd_set after a select if it returned -1 (treat as undefined). Ensure we obey this. Jeremy. Modified: branches/SAMBA_3_0/source/nsswitch/winbindd.c Changeset: Modified: branches/SAMBA_3_0/source/nsswitch/winbindd.c === --- branches/SAMBA_3_0/source/nsswitch/winbindd.c 2006-05-18 01:45:11 UTC (rev 15674) +++ branches/SAMBA_3_0/source/nsswitch/winbindd.c 2006-05-18 01:45:18 UTC (rev 15675) @@ -769,10 +769,14 @@ selret = sys_select(maxfd + 1, &r_fds, &w_fds, NULL, &timeout); - if (selret == 0) + if (selret == 0) { goto no_fds_ready; + } - if ((selret == -1 && errno != EINTR) || selret == 0) { + if (selret == -1) { + if (errno == EINTR) { + goto no_fds_ready; + } /* Select error, something is badly wrong */ @@ -780,6 +784,8 @@ exit(1); } + /* selret > 0 */ + ev = fd_events; while (ev != NULL) { struct fd_event *next = ev->next;
svn commit: samba r15674 - in trunk/source/nsswitch: .
Author: jra Date: 2006-05-18 01:45:11 + (Thu, 18 May 2006) New Revision: 15674 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15674 Log: Man pages say never look at the fd_set after a select if it returned -1 (treat as undefined). Ensure we obey this. Jeremy. Modified: trunk/source/nsswitch/winbindd.c Changeset: Modified: trunk/source/nsswitch/winbindd.c === --- trunk/source/nsswitch/winbindd.c2006-05-18 01:30:03 UTC (rev 15673) +++ trunk/source/nsswitch/winbindd.c2006-05-18 01:45:11 UTC (rev 15674) @@ -770,10 +770,14 @@ selret = sys_select(maxfd + 1, &r_fds, &w_fds, NULL, &timeout); - if (selret == 0) + if (selret == 0) { goto no_fds_ready; + } - if ((selret == -1 && errno != EINTR) || selret == 0) { + if (selret == -1) { + if (errno == EINTR) { + goto no_fds_ready; + } /* Select error, something is badly wrong */ @@ -781,6 +785,8 @@ exit(1); } + /* selret > 0 */ + ev = fd_events; while (ev != NULL) { struct fd_event *next = ev->next;
svn commit: samba r15673 - in trunk/source/lib: .
Author: jra Date: 2006-05-18 01:30:03 + (Thu, 18 May 2006) New Revision: 15673 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15673 Log: Fix for bug #3783. winbindd_cm.c calls open_any_socket_out() to make connections to ports 445 or 139 on the DC it's trying to contact. It calls sys_select() on the non-blocking sockets, not sys_select_intr(). This is a mistake (I believe) as it allows a signal to early terminate the connection attempts - whereas sys_select_intr() will ignore signals until we get back to the main processing loop where they'll be handled correctly. This change means winbindd_cm will not early terminate if it gets a message whilst trying to connect to DC's. Gunther, Volker and Jerry please review (but I think this is correct). Jeremy. Modified: trunk/source/lib/util_sock.c Changeset: Modified: trunk/source/lib/util_sock.c === --- trunk/source/lib/util_sock.c2006-05-18 01:30:00 UTC (rev 15672) +++ trunk/source/lib/util_sock.c2006-05-18 01:30:03 UTC (rev 15673) @@ -1003,7 +1003,7 @@ tv.tv_sec = 0; tv.tv_usec = connect_loop; - res = sys_select(maxfd+1, &r_fds, &wr_fds, NULL, &tv); + res = sys_select_intr(maxfd+1, &r_fds, &wr_fds, NULL, &tv); if (res < 0) goto done;
svn commit: samba r15672 - in branches/SAMBA_3_0/source/lib: .
Author: jra Date: 2006-05-18 01:30:00 + (Thu, 18 May 2006) New Revision: 15672 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15672 Log: Fix for bug #3783. winbindd_cm.c calls open_any_socket_out() to make connections to ports 445 or 139 on the DC it's trying to contact. It calls sys_select() on the non-blocking sockets, not sys_select_intr(). This is a mistake (I believe) as it allows a signal to early terminate the connection attempts - whereas sys_select_intr() will ignore signals until we get back to the main processing loop where they'll be handled correctly. This change means winbindd_cm will not early terminate if it gets a message whilst trying to connect to DC's. Gunther, Volker and Jerry please review (but I think this is correct). Jeremy. Modified: branches/SAMBA_3_0/source/lib/util_sock.c Changeset: Modified: branches/SAMBA_3_0/source/lib/util_sock.c === --- branches/SAMBA_3_0/source/lib/util_sock.c 2006-05-18 00:22:14 UTC (rev 15671) +++ branches/SAMBA_3_0/source/lib/util_sock.c 2006-05-18 01:30:00 UTC (rev 15672) @@ -1003,7 +1003,7 @@ tv.tv_sec = 0; tv.tv_usec = connect_loop; - res = sys_select(maxfd+1, &r_fds, &wr_fds, NULL, &tv); + res = sys_select_intr(maxfd+1, &r_fds, &wr_fds, NULL, &tv); if (res < 0) goto done;
svn commit: samba r15671 - in trunk/source/locking: .
Author: jra Date: 2006-05-18 00:22:14 + (Thu, 18 May 2006) New Revision: 15671 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15671 Log: Fix valgrind-spotted issue in BASE-DELETE test. We were forgetting to increment after copying the primary group gid. Jeremy Modified: trunk/source/locking/locking.c Changeset: Modified: trunk/source/locking/locking.c === --- trunk/source/locking/locking.c 2006-05-18 00:22:07 UTC (rev 15670) +++ trunk/source/locking/locking.c 2006-05-18 00:22:14 UTC (rev 15671) @@ -665,6 +665,7 @@ p += sizeof(uid_t); memcpy(p, &lck->delete_token->gid, sizeof(gid_t)); + p += sizeof(gid_t); for (i = 0; i < lck->delete_token->ngroups; i++) { memcpy(p, &lck->delete_token->groups[i], sizeof(gid_t));
svn commit: samba r15670 - in branches/SAMBA_3_0/source/locking: .
Author: jra Date: 2006-05-18 00:22:07 + (Thu, 18 May 2006) New Revision: 15670 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15670 Log: Fix valgrind-spotted issue in BASE-DELETE test. We were forgetting to increment after copying the primary group gid. Jeremy Modified: branches/SAMBA_3_0/source/locking/locking.c Changeset: Modified: branches/SAMBA_3_0/source/locking/locking.c === --- branches/SAMBA_3_0/source/locking/locking.c 2006-05-17 23:15:54 UTC (rev 15669) +++ branches/SAMBA_3_0/source/locking/locking.c 2006-05-18 00:22:07 UTC (rev 15670) @@ -665,6 +665,7 @@ p += sizeof(uid_t); memcpy(p, &lck->delete_token->gid, sizeof(gid_t)); + p += sizeof(gid_t); for (i = 0; i < lck->delete_token->ngroups; i++) { memcpy(p, &lck->delete_token->groups[i], sizeof(gid_t));
Build status as of Thu May 18 00:00:02 2006
URL: http://build.samba.org/ --- /home/build/master/cache/broken_results.txt.old 2006-05-17 00:00:49.0 + +++ /home/build/master/cache/broken_results.txt 2006-05-18 00:00:26.0 + @@ -1,16 +1,16 @@ -Build status as of Wed May 17 00:00:02 2006 +Build status as of Thu May 18 00:00:02 2006 Build counts: Tree Total Broken Panic -ccache 37 4 0 +ccache 37 3 0 distcc 38 3 0 -lorikeet-heimdal 34 22 0 +lorikeet-heimdal 34 23 0 ppp 21 0 0 -rsync37 4 0 +rsync37 2 0 samba6 2 0 samba-docs 0 0 0 -samba4 41 32 10 -samba_3_038 12 0 +samba4 41 33 12 +samba_3_038 13 0 smb-build30 0 0 talloc 34 15 0 tdb 34 4 0
svn commit: samba r15669 - in trunk/source: include locking smbd
Author: jra Date: 2006-05-17 23:15:54 + (Wed, 17 May 2006) New Revision: 15669 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15669 Log: DOS or FCB opens share one share mode entry from different fsp pointers. Ensure we cope with this to pass Samba4 DENY tests (we used to pass these, there must have been a regression with newer code). We now pass them. Jeremy Modified: trunk/source/include/smb.h trunk/source/locking/locking.c trunk/source/smbd/close.c trunk/source/smbd/files.c trunk/source/smbd/oplock.c trunk/source/smbd/oplock_irix.c trunk/source/smbd/oplock_linux.c Changeset: Modified: trunk/source/include/smb.h === --- trunk/source/include/smb.h 2006-05-17 23:15:53 UTC (rev 15668) +++ trunk/source/include/smb.h 2006-05-17 23:15:54 UTC (rev 15669) @@ -401,6 +401,7 @@ * DELETE_ON_CLOSE is not stored in the share * mode database. */ + unsigned long file_id; }; struct timed_event; @@ -435,7 +436,6 @@ struct share_mode_entry *pending_break_messages; int num_pending_break_messages; - unsigned long file_id; BOOL can_lock; BOOL can_read; BOOL can_write; Modified: trunk/source/locking/locking.c === --- trunk/source/locking/locking.c 2006-05-17 23:15:53 UTC (rev 15668) +++ trunk/source/locking/locking.c 2006-05-17 23:15:54 UTC (rev 15669) @@ -927,7 +927,7 @@ e->op_type = op_type; e->time.tv_sec = fsp->open_time.tv_sec; e->time.tv_usec = fsp->open_time.tv_usec; - e->share_file_id = fsp->file_id; + e->share_file_id = fsp->fh->file_id; e->dev = fsp->dev; e->inode = fsp->inode; } @@ -986,28 +986,19 @@ /*** Check if two share mode entries are identical, ignoring oplock - and mid info and desired_access. + and mid info and desired_access. (Removed paranoia test - it's + not automatically a logic error if they are identical. JRA.) / static BOOL share_modes_identical(struct share_mode_entry *e1, struct share_mode_entry *e2) { -#if 1 /* JRA PARANOIA TEST - REMOVE LATER */ - if (procid_equal(&e1->pid, &e2->pid) && - e1->share_file_id == e2->share_file_id && - e1->dev == e2->dev && - e1->inode == e2->inode && - (e1->share_access) != (e2->share_access)) { - DEBUG(0,("PANIC: share_modes_identical: share_mode " -"mismatch (e1 = 0x%x, e2 = 0x%x). Logic error.\n", -(unsigned int)e1->share_access, -(unsigned int)e2->share_access )); - smb_panic("PANIC: share_modes_identical logic error.\n"); - } -#endif + /* We used to check for e1->share_access == e2->share_access here + as well as the other fields but 2 different DOS or FCB opens + sharing the same share mode entry may validly differ in + fsp->share_access field. */ return (procid_equal(&e1->pid, &e2->pid) && - (e1->share_access) == (e2->share_access) && e1->dev == e2->dev && e1->inode == e2->inode && e1->share_file_id == e2->share_file_id ); Modified: trunk/source/smbd/close.c === --- trunk/source/smbd/close.c 2006-05-17 23:15:53 UTC (rev 15668) +++ trunk/source/smbd/close.c 2006-05-17 23:15:54 UTC (rev 15669) @@ -143,55 +143,16 @@ } / - Close a file. - - close_type can be NORMAL_CLOSE=0,SHUTDOWN_CLOSE,ERROR_CLOSE. - printing and magic scripts are only run on normal close. - delete on close is done on normal and shutdown close. + Deal with removing a share mode on last close. / -static int close_normal_file(files_struct *fsp, enum file_close_type close_type) +static int close_remove_share_mode(files_struct *fsp, enum file_close_type close_type) { + connection_struct *conn = fsp->conn; BOOL delete_file = False; - connection_struct *conn = fsp->conn; - int saved_errno = 0; - int err = 0; - int err1 = 0; struct share_mode_lock *lck; - remove_pending_lock_requests_by_fid(fsp); - - if (fsp->aio_write_behind) { - /* -* If we're finishing write behind on a close we can get a write -* error here, we must remember this. -*/ - int ret = wait_for_aio_completion(fsp); - if (ret) { -
svn commit: samba r15668 - in branches/SAMBA_3_0/source: include locking smbd
Author: jra Date: 2006-05-17 23:15:53 + (Wed, 17 May 2006) New Revision: 15668 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15668 Log: DOS or FCB opens share one share mode entry from different fsp pointers. Ensure we cope with this to pass Samba4 DENY tests (we used to pass these, there must have been a regression with newer code). We now pass them. Jeremy Modified: branches/SAMBA_3_0/source/include/smb.h branches/SAMBA_3_0/source/locking/locking.c branches/SAMBA_3_0/source/smbd/close.c branches/SAMBA_3_0/source/smbd/files.c branches/SAMBA_3_0/source/smbd/oplock.c branches/SAMBA_3_0/source/smbd/oplock_irix.c branches/SAMBA_3_0/source/smbd/oplock_linux.c Changeset: Modified: branches/SAMBA_3_0/source/include/smb.h === --- branches/SAMBA_3_0/source/include/smb.h 2006-05-17 22:21:24 UTC (rev 15667) +++ branches/SAMBA_3_0/source/include/smb.h 2006-05-17 23:15:53 UTC (rev 15668) @@ -404,6 +404,7 @@ * DELETE_ON_CLOSE is not stored in the share * mode database. */ + unsigned long file_id; }; struct timed_event; @@ -438,7 +439,6 @@ struct share_mode_entry *pending_break_messages; int num_pending_break_messages; - unsigned long file_id; BOOL can_lock; BOOL can_read; BOOL can_write; Modified: branches/SAMBA_3_0/source/locking/locking.c === --- branches/SAMBA_3_0/source/locking/locking.c 2006-05-17 22:21:24 UTC (rev 15667) +++ branches/SAMBA_3_0/source/locking/locking.c 2006-05-17 23:15:53 UTC (rev 15668) @@ -927,7 +927,7 @@ e->op_type = op_type; e->time.tv_sec = fsp->open_time.tv_sec; e->time.tv_usec = fsp->open_time.tv_usec; - e->share_file_id = fsp->file_id; + e->share_file_id = fsp->fh->file_id; e->dev = fsp->dev; e->inode = fsp->inode; } @@ -986,28 +986,19 @@ /*** Check if two share mode entries are identical, ignoring oplock - and mid info and desired_access. + and mid info and desired_access. (Removed paranoia test - it's + not automatically a logic error if they are identical. JRA.) / static BOOL share_modes_identical(struct share_mode_entry *e1, struct share_mode_entry *e2) { -#if 1 /* JRA PARANOIA TEST - REMOVE LATER */ - if (procid_equal(&e1->pid, &e2->pid) && - e1->share_file_id == e2->share_file_id && - e1->dev == e2->dev && - e1->inode == e2->inode && - (e1->share_access) != (e2->share_access)) { - DEBUG(0,("PANIC: share_modes_identical: share_mode " -"mismatch (e1 = 0x%x, e2 = 0x%x). Logic error.\n", -(unsigned int)e1->share_access, -(unsigned int)e2->share_access )); - smb_panic("PANIC: share_modes_identical logic error.\n"); - } -#endif + /* We used to check for e1->share_access == e2->share_access here + as well as the other fields but 2 different DOS or FCB opens + sharing the same share mode entry may validly differ in + fsp->share_access field. */ return (procid_equal(&e1->pid, &e2->pid) && - (e1->share_access) == (e2->share_access) && e1->dev == e2->dev && e1->inode == e2->inode && e1->share_file_id == e2->share_file_id ); Modified: branches/SAMBA_3_0/source/smbd/close.c === --- branches/SAMBA_3_0/source/smbd/close.c 2006-05-17 22:21:24 UTC (rev 15667) +++ branches/SAMBA_3_0/source/smbd/close.c 2006-05-17 23:15:53 UTC (rev 15668) @@ -143,55 +143,16 @@ } / - Close a file. - - close_type can be NORMAL_CLOSE=0,SHUTDOWN_CLOSE,ERROR_CLOSE. - printing and magic scripts are only run on normal close. - delete on close is done on normal and shutdown close. + Deal with removing a share mode on last close. / -static int close_normal_file(files_struct *fsp, enum file_close_type close_type) +static int close_remove_share_mode(files_struct *fsp, enum file_close_type close_type) { + connection_struct *conn = fsp->conn; BOOL delete_file = False; - connection_struct *conn = fsp->conn; - int saved_errno = 0; - int err = 0; - int err1 = 0; struct share_mode_lock *lck; - remove_pending_lock_requests_by_fid(fsp); - - if (fsp->aio_write_behind) { - /* -* If we're
svn commit: samba r15667 - in branches/SAMBA_4_0/source/libnet: .
Author: mimir Date: 2006-05-17 22:21:24 + (Wed, 17 May 2006) New Revision: 15667 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15667 Log: Make sure the rpc pipe pointers are zeroed during initialisation of libnet_context. This fixes a valgrind warning. rafal Modified: branches/SAMBA_4_0/source/libnet/libnet.c Changeset: Modified: branches/SAMBA_4_0/source/libnet/libnet.c === --- branches/SAMBA_4_0/source/libnet/libnet.c 2006-05-17 22:07:32 UTC (rev 15666) +++ branches/SAMBA_4_0/source/libnet/libnet.c 2006-05-17 22:21:24 UTC (rev 15667) @@ -47,6 +47,14 @@ /* connected domain params */ ZERO_STRUCT(ctx->domain); + + /* currently opened user */ + ZERO_STRUCT(ctx->user_handle); + + /* init pipe pointers */ + ctx->samr_pipe = NULL; + ctx->lsa_pipe = NULL; + ctx->pipe = NULL; return ctx; }
svn commit: samba r15666 - in branches/SAMBA_4_0/source/libnet: .
Author: mimir Date: 2006-05-17 22:07:32 + (Wed, 17 May 2006) New Revision: 15666 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15666 Log: Fix a silly typo. rafal Modified: branches/SAMBA_4_0/source/libnet/libnet_user.c Changeset: Modified: branches/SAMBA_4_0/source/libnet/libnet_user.c === --- branches/SAMBA_4_0/source/libnet/libnet_user.c 2006-05-17 21:45:00 UTC (rev 15665) +++ branches/SAMBA_4_0/source/libnet/libnet_user.c 2006-05-17 22:07:32 UTC (rev 15666) @@ -299,7 +299,7 @@ NTSTATUS libnet_DeleteUser_recv(struct composite_context *c, TALLOC_CTX *mem_ctx, - struct libnet_CreateUser *r) + struct libnet_DeleteUser *r) { NTSTATUS status; struct delete_user_state *s;
svn commit: samba r15665 - in branches/SAMBA_4_0/source/script/tests: .
Author: mimir Date: 2006-05-17 21:45:00 + (Wed, 17 May 2006) New Revision: 15665 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15665 Log: ejsnet test should be better now, after changes in delete user routine. rafal Modified: branches/SAMBA_4_0/source/script/tests/test_ejs.sh Changeset: Modified: branches/SAMBA_4_0/source/script/tests/test_ejs.sh === --- branches/SAMBA_4_0/source/script/tests/test_ejs.sh 2006-05-17 21:44:06 UTC (rev 15664) +++ branches/SAMBA_4_0/source/script/tests/test_ejs.sh 2006-05-17 21:45:00 UTC (rev 15665) @@ -24,7 +24,7 @@ testit "$f" $SCRIPTDIR/$f $CONFIGURATION ncalrpc: -U$USERNAME%$PASSWORD || failed=`expr $failed + 1` done -#testit "ejsnet.js" $SCRIPTDIR/ejsnet.js $CONFIGURATION -U$USERNAME%$PASSWORD $DOMAIN ejstestuser || failed=`expr $failed + 1` +testit "ejsnet.js" $SCRIPTDIR/ejsnet.js $CONFIGURATION -U$USERNAME%$PASSWORD $DOMAIN ejstestuser || failed=`expr $failed + 1` testit "winreg" scripting/bin/winreg $CONFIGURATION ncalrpc: 'HKLM' -U$USERNAME%$PASSWORD || failed=`expr $failed + 1`
svn commit: samba r15664 - in branches/SAMBA_4_0/source/torture/libnet: .
Author: mimir Date: 2006-05-17 21:44:06 + (Wed, 17 May 2006) New Revision: 15664 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15664 Log: Add NET-API-DELETEUSER test for libnet_DeleteUser function. Only the sync version right now. rafal Modified: branches/SAMBA_4_0/source/torture/libnet/libnet.c branches/SAMBA_4_0/source/torture/libnet/libnet_user.c Changeset: Modified: branches/SAMBA_4_0/source/torture/libnet/libnet.c === --- branches/SAMBA_4_0/source/torture/libnet/libnet.c 2006-05-17 21:41:59 UTC (rev 15663) +++ branches/SAMBA_4_0/source/torture/libnet/libnet.c 2006-05-17 21:44:06 UTC (rev 15664) @@ -33,6 +33,7 @@ register_torture_op("NET-API-LOOKUPHOST", torture_lookup_host, 0); register_torture_op("NET-API-LOOKUPPDC", torture_lookup_pdc, 0); register_torture_op("NET-API-CREATEUSER", torture_createuser, 0); + register_torture_op("NET-API-DELETEUSER", torture_deleteuser, 0); register_torture_op("NET-API-RPCCONNECT", torture_rpc_connect, 0); register_torture_op("NET-API-LISTSHARES", torture_listshares, 0); register_torture_op("NET-API-DELSHARE", torture_delshare, 0); Modified: branches/SAMBA_4_0/source/torture/libnet/libnet_user.c === --- branches/SAMBA_4_0/source/torture/libnet/libnet_user.c 2006-05-17 21:41:59 UTC (rev 15663) +++ branches/SAMBA_4_0/source/torture/libnet/libnet_user.c 2006-05-17 21:44:06 UTC (rev 15664) @@ -24,6 +24,7 @@ #include "libnet/libnet.h" #include "librpc/gen_ndr/ndr_samr_c.h" #include "torture/torture.h" +#include "torture/rpc/rpc.h" #define TEST_USERNAME "libnetusertest" @@ -94,6 +95,114 @@ } +static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, + struct policy_handle *handle, struct lsa_String *domname) +{ + NTSTATUS status; + struct policy_handle h, domain_handle; + struct samr_Connect r1; + struct samr_LookupDomain r2; + struct samr_OpenDomain r3; + + printf("connecting\n"); + + r1.in.system_name = 0; + r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; + r1.out.connect_handle = &h; + + status = dcerpc_samr_Connect(p, mem_ctx, &r1); + if (!NT_STATUS_IS_OK(status)) { + printf("Connect failed - %s\n", nt_errstr(status)); + return False; + } + + r2.in.connect_handle = &h; + r2.in.domain_name = domname; + + printf("domain lookup on %s\n", domname->string); + + status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2); + if (!NT_STATUS_IS_OK(status)) { + printf("LookupDomain failed - %s\n", nt_errstr(status)); + return False; + } + + r3.in.connect_handle = &h; + r3.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; + r3.in.sid = r2.out.sid; + r3.out.domain_handle = &domain_handle; + + printf("opening domain\n"); + + status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3); + if (!NT_STATUS_IS_OK(status)) { + printf("OpenDomain failed - %s\n", nt_errstr(status)); + return False; + } else { + *handle = domain_handle; + } + + return True; +} + + +static BOOL test_createuser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, + struct policy_handle *handle, const char* user) +{ + NTSTATUS status; + struct policy_handle user_handle; + struct lsa_String username; + struct samr_CreateUser r1; + struct samr_Close r2; + uint32_t user_rid; + + username.string = user; + + r1.in.domain_handle = handle; + r1.in.account_name = &username; + r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; + r1.out.user_handle = &user_handle; + r1.out.rid = &user_rid; + + printf("creating user '%s'\n", username.string); + + status = dcerpc_samr_CreateUser(p, mem_ctx, &r1); + if (!NT_STATUS_IS_OK(status)) { + printf("CreateUser failed - %s\n", nt_errstr(status)); + + if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) { + printf("User (%s) already exists - attempting to delete and recreate account again\n", user); + if (!test_cleanup(p, mem_ctx, handle, TEST_USERNAME)) { + return False; + } + + printf("creating user account\n"); + + status = dcerpc_samr_CreateUser(p, mem_ctx, &r1); + if (!NT_STATUS_IS_OK(status)) { + printf("CreateUser failed - %s\n", nt_errstr(status)); + return False; + } + return True; +
svn commit: samba r15663 - in branches/SAMBA_4_0/source/libnet: .
Author: mimir Date: 2006-05-17 21:41:59 + (Wed, 17 May 2006) New Revision: 15663 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15663 Log: Turn libnet_DeleteUser into async function and fix subtle bug probably causing ejsnet test to segfault. Also, cleanup a bit and add monitor fn pointer to internal user delete libnet function. Time for some comments now. rafal Modified: branches/SAMBA_4_0/source/libnet/libnet_user.c branches/SAMBA_4_0/source/libnet/userman.c Changeset: Modified: branches/SAMBA_4_0/source/libnet/libnet_user.c === --- branches/SAMBA_4_0/source/libnet/libnet_user.c 2006-05-17 16:14:33 UTC (rev 15662) +++ branches/SAMBA_4_0/source/libnet/libnet_user.c 2006-05-17 21:41:59 UTC (rev 15663) @@ -39,7 +39,7 @@ static void continue_rpc_useradd(struct composite_context *ctx); -static void continue_domain_open(struct composite_context *ctx); +static void continue_domain_open_create(struct composite_context *ctx); struct composite_context* libnet_CreateUser_send(struct libnet_context *ctx, @@ -74,7 +74,7 @@ domopen_req = libnet_DomainOpen_send(ctx, &s->domain_open, monitor); if (composite_nomem(domopen_req, c)) return c; - composite_continue(c, domopen_req, continue_domain_open, c); + composite_continue(c, domopen_req, continue_domain_open_create, c); return c; } else { /* no domain name provided - neither in io structure nor default @@ -93,7 +93,7 @@ domopen_req = libnet_DomainOpen_send(ctx, &s->domain_open, monitor); if (composite_nomem(domopen_req, c)) return c; - composite_continue(c, domopen_req, continue_domain_open, c); + composite_continue(c, domopen_req, continue_domain_open_create, c); return c; } } @@ -109,7 +109,7 @@ } -static void continue_domain_open(struct composite_context *ctx) +static void continue_domain_open_create(struct composite_context *ctx) { struct composite_context *c; struct create_user_state *s; @@ -178,101 +178,148 @@ } -#ifdef OBSOLETE -NTSTATUS libnet_CreateUser(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, struct libnet_CreateUser *r) + +struct delete_user_state { + struct libnet_DeleteUser r; + struct libnet_context *ctx; + struct libnet_DomainOpen domain_open; + struct libnet_rpc_userdel user_del; + + /* information about the progress */ + void (*monitor_fn)(struct monitor_msg *); +}; + + +static void continue_rpc_userdel(struct composite_context *ctx); +static void continue_domain_open_delete(struct composite_context *ctx); + + +struct composite_context *libnet_DeleteUser_send(struct libnet_context *ctx, +TALLOC_CTX *mem_ctx, +struct libnet_DeleteUser *r, +void (*monitor)(struct monitor_msg*)) { - NTSTATUS status; - struct libnet_RpcConnect cn; - struct libnet_DomainOpen dom_io; - struct libnet_rpc_useradd user_io; + struct composite_context *c; + struct delete_user_state *s; + struct composite_context *domopen_req; + struct composite_context *delete_req; + + c = talloc_zero(mem_ctx, struct composite_context); + if (c == NULL) return NULL; + + s = talloc_zero(c, struct delete_user_state); + if (composite_nomem(s, c)) return c; + + c->private_data = s; + c->state = COMPOSITE_STATE_IN_PROGRESS; + c->event_ctx = ctx->event_ctx; + + s->ctx = ctx; + s->r = *r; - /* connect rpc service of remote DC */ - cn.level = LIBNET_RPC_CONNECT_PDC; - cn.in.name = talloc_strdup(mem_ctx, r->in.domain_name); - cn.in.dcerpc_iface = &dcerpc_table_samr; + if (s->r.in.domain_name == NULL) { + + if (policy_handle_empty(&ctx->domain.handle)) { + s->domain_open.in.domain_name = cli_credentials_get_domain(ctx->cred); + s->domain_open.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; + + domopen_req = libnet_DomainOpen_send(ctx, &s->domain_open, monitor); + if (composite_nomem(domopen_req, c)) return c; + + composite_continue(c, domopen_req, continue_domain_open_delete, c); + return c; + } - status = libnet_RpcConnect(ctx, mem_ctx, &cn); - if (!NT_STATUS_IS_OK(status)) { - r->out.error_string = tall
svn commit: samba r15662 - in branches/tmp/vl-posixacls/source: . modules
Author: jmcd Date: 2006-05-17 16:14:33 + (Wed, 17 May 2006) New Revision: 15662 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15662 Log: restore aix acl functionality. Work done by Gomati Mohanan and Peter Somogyi. Added: branches/tmp/vl-posixacls/source/modules/vfs_aixacl_util.c Modified: branches/tmp/vl-posixacls/source/Makefile.in branches/tmp/vl-posixacls/source/modules/vfs_aixacl.c Changeset: Sorry, the patch is too large (795 lines) to include; please use WebSVN to see it! WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15662
svn commit: samba r15661 - in branches/SAMBA_4_0/source/libcli/util: .
Author: metze Date: 2006-05-17 15:16:46 + (Wed, 17 May 2006) New Revision: 15661 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15661 Log: add NT_STATUS_OBJECTID_NOT_FOUND metze Modified: branches/SAMBA_4_0/source/libcli/util/nterr.c branches/SAMBA_4_0/source/libcli/util/nterr.h Changeset: Modified: branches/SAMBA_4_0/source/libcli/util/nterr.c === --- branches/SAMBA_4_0/source/libcli/util/nterr.c 2006-05-17 15:01:57 UTC (rev 15660) +++ branches/SAMBA_4_0/source/libcli/util/nterr.c 2006-05-17 15:16:46 UTC (rev 15661) @@ -544,6 +544,7 @@ { "NT_STATUS_NO_MORE_ENTRIES", NT_STATUS_NO_MORE_ENTRIES }, { "NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED", NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED }, { "NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX", NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX }, + { "NT_STATUS_OBJECTID_NOT_FOUND", NT_STATUS_OBJECTID_NOT_FOUND }, { "STATUS_MORE_ENTRIES", STATUS_MORE_ENTRIES }, { "STATUS_SOME_UNMAPPED", STATUS_SOME_UNMAPPED }, Modified: branches/SAMBA_4_0/source/libcli/util/nterr.h === --- branches/SAMBA_4_0/source/libcli/util/nterr.h 2006-05-17 15:01:57 UTC (rev 15660) +++ branches/SAMBA_4_0/source/libcli/util/nterr.h 2006-05-17 15:16:46 UTC (rev 15661) @@ -575,6 +575,7 @@ #define NT_STATUS_QUOTA_LIST_INCONSISTENT NT_STATUS(0xC000 | 0x0266) #define NT_STATUS_FILE_IS_OFFLINE NT_STATUS(0xC000 | 0x0267) #define NT_STATUS_NOT_A_REPARSE_POINT NT_STATUS(0xC000 | 0x0275) +#define NT_STATUS_OBJECTID_NOT_FOUND NT_STATUS(0xC000 | 0x02F0) #define NT_STATUS_NO_SUCH_JOB NT_STATUS(0xC000 | 0xEDE) /* scheduler */ #define NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED NT_STATUS(0xC000 | 0x20004) #define NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX NT_STATUS(0xC000 | 0x20026)
svn commit: samba r15660 - branches/SAMBA_3_0/source/smbd trunk/source/smbd
Author: vlendec Date: 2006-05-17 15:01:57 + (Wed, 17 May 2006) New Revision: 15660 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15660 Log: Without this when using smbcquotas I get close fd=-1 fnum=4321 (numopen=1) close_file: Could not get share mode lock for file $Extend/$Quota:$Q:$INDEX_ALLOCATION unix_error_packet: error string = Das Argument ist ung?\195?\188ltig error packet at smbd/reply.c(3325) cmd=4 (SMBclose) NT_STATUS_INVALID_HANDLE so a fake file needs special close handling I think. Jeremy, can you check this? Thanks, Volker Modified: branches/SAMBA_3_0/source/smbd/close.c branches/SAMBA_3_0/source/smbd/fake_file.c trunk/source/smbd/close.c trunk/source/smbd/fake_file.c Changeset: Modified: branches/SAMBA_3_0/source/smbd/close.c === --- branches/SAMBA_3_0/source/smbd/close.c 2006-05-17 13:58:53 UTC (rev 15659) +++ branches/SAMBA_3_0/source/smbd/close.c 2006-05-17 15:01:57 UTC (rev 15660) @@ -447,6 +447,8 @@ return close_directory(fsp, close_type); else if (fsp->is_stat) return close_stat(fsp); + else if (fsp->fake_file_handle != NULL) + return close_fake_file(fsp); else return close_normal_file(fsp, close_type); } Modified: branches/SAMBA_3_0/source/smbd/fake_file.c === --- branches/SAMBA_3_0/source/smbd/fake_file.c 2006-05-17 13:58:53 UTC (rev 15659) +++ branches/SAMBA_3_0/source/smbd/fake_file.c 2006-05-17 15:01:57 UTC (rev 15660) @@ -156,3 +156,9 @@ talloc_destroy((*fh)->mem_ctx); (*fh) = NULL; } + +int close_fake_file(files_struct *fsp) +{ + file_free(fsp); + return 0; +} Modified: trunk/source/smbd/close.c === --- trunk/source/smbd/close.c 2006-05-17 13:58:53 UTC (rev 15659) +++ trunk/source/smbd/close.c 2006-05-17 15:01:57 UTC (rev 15660) @@ -447,6 +447,8 @@ return close_directory(fsp, close_type); else if (fsp->is_stat) return close_stat(fsp); + else if (fsp->fake_file_handle != NULL) + return close_fake_file(fsp); else return close_normal_file(fsp, close_type); } Modified: trunk/source/smbd/fake_file.c === --- trunk/source/smbd/fake_file.c 2006-05-17 13:58:53 UTC (rev 15659) +++ trunk/source/smbd/fake_file.c 2006-05-17 15:01:57 UTC (rev 15660) @@ -158,3 +158,9 @@ talloc_destroy((*fh)->mem_ctx); (*fh) = NULL; } + +int close_fake_file(files_struct *fsp) +{ + file_free(fsp); + return 0; +}
svn commit: samba r15659 - in branches/SAMBA_4_0/source/lib/registry: .
Author: jelmer Date: 2006-05-17 13:58:53 + (Wed, 17 May 2006) New Revision: 15659 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15659 Log: Implement opening a key by name (significant better performance in some situations). Patch by Wilco Baan Hofman. Modified: branches/SAMBA_4_0/source/lib/registry/reg_backend_nt4.c Changeset: Modified: branches/SAMBA_4_0/source/lib/registry/reg_backend_nt4.c === --- branches/SAMBA_4_0/source/lib/registry/reg_backend_nt4.c2006-05-17 12:59:30 UTC (rev 15658) +++ branches/SAMBA_4_0/source/lib/registry/reg_backend_nt4.c2006-05-17 13:58:53 UTC (rev 15659) @@ -469,7 +469,7 @@ return WERR_OK; } -static WERROR regf_get_subkey (TALLOC_CTX *ctx, const struct registry_key *key, int idx, struct registry_key **ret) +static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx, const struct registry_key *key, int idx, struct registry_key **ret) { DATA_BLOB data; struct nk_block *nk = key->backend_data; @@ -627,7 +627,240 @@ return WERR_OK; } +static WERROR regf_match_subkey_by_name (TALLOC_CTX *ctx, const struct registry_key *key, uint32_t offset, const char *name, uint32_t *ret) +{ + DATA_BLOB subkey_data; + struct nk_block subkey; + struct tdr_pull pull; + + subkey_data = hbin_get(key->hive->backend_data, offset); + if (!subkey_data.data) { + DEBUG(0, ("Unable to retrieve subkey HBIN\n")); + return WERR_GENERAL_FAILURE; + } + ZERO_STRUCT(pull); + pull.data = subkey_data; + + if (NT_STATUS_IS_ERR(tdr_pull_nk_block(&pull, ctx, &subkey))) { + DEBUG(0, ("Error parsing NK structure.\n")); + return WERR_GENERAL_FAILURE; + } + if (strncmp(subkey.header, "nk", 2)) { + DEBUG(0, ("Not an NK structure.\n")); + return WERR_GENERAL_FAILURE; + } + if (!strcasecmp(subkey.key_name, name)) { + *ret = offset; + } else { + *ret = 0; + } + return WERR_OK; +} + +static WERROR regf_get_subkey_by_name (TALLOC_CTX *ctx, const struct registry_key *key, const char *name, struct registry_key **ret) +{ + DATA_BLOB data; + struct nk_block *nk = key->backend_data; + uint32_t key_off = 0; + + data = hbin_get(key->hive->backend_data, nk->subkeys_offset); + if (!data.data) { + DEBUG(0, ("Unable to find subkey list\n")); + return WERR_GENERAL_FAILURE; + } + + if (!strncmp((char *)data.data, "li",2)) { + struct li_block li; + struct tdr_pull pull; + uint16_t i; + + DEBUG(10, ("Subkeys in LI list\n")); + ZERO_STRUCT(pull); + pull.data = data; + + if (NT_STATUS_IS_ERR(tdr_pull_li_block(&pull, nk, &li))) { + DEBUG(0, ("Error parsing LI list\n")); + return WERR_GENERAL_FAILURE; + } + SMB_ASSERT(!strncmp(li.header, "li",2)); + + if (li.key_count != nk->num_subkeys) { + DEBUG(0, ("Subkey counts don't match\n")); + return WERR_GENERAL_FAILURE; + } + + for (i = 0; i < li.key_count; i++) { + W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key, li.nk_offset[i], name, &key_off)); + if (key_off) { + break; + } + } + if (!key_off) { + return WERR_DEST_NOT_FOUND; + } + } else if (!strncmp((char *)data.data, "lf",2)) { + struct lf_block lf; + struct tdr_pull pull; + uint16_t i; + + DEBUG(10, ("Subkeys in LF list\n")); + ZERO_STRUCT(pull); + pull.data = data; + + if (NT_STATUS_IS_ERR(tdr_pull_lf_block(&pull, nk, &lf))) { + DEBUG(0, ("Error parsing LF list\n")); + return WERR_GENERAL_FAILURE; + } + SMB_ASSERT(!strncmp(lf.header, "lf",2)); + + if (lf.key_count != nk->num_subkeys) { + DEBUG(0, ("Subkey counts don't match\n")); + return WERR_GENERAL_FAILURE; + } + + for (i = 0; i < lf.key_count; i++) { + if (strncmp(lf.hr[i].hash, name, 4)) { + continue; + } + W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key, lf.hr[i].nk_offset, name, &key_off)); + if (key_off) { + break; + } +
svn commit: samba r15658 - in trunk/source: printing smbd
Author: vlendec Date: 2006-05-17 12:59:30 + (Wed, 17 May 2006) New Revision: 15658 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15658 Log: Micro-step towards getting rid of set_saved_error & friends. Lift set_saved_ntstatus up from file_new one level. The plan is to work the way up to open_file_ntcreate and higher. Volker Modified: trunk/source/printing/printfsp.c trunk/source/smbd/fake_file.c trunk/source/smbd/files.c trunk/source/smbd/open.c Changeset: Modified: trunk/source/printing/printfsp.c === --- trunk/source/printing/printfsp.c2006-05-17 11:14:26 UTC (rev 15657) +++ trunk/source/printing/printfsp.c2006-05-17 12:59:30 UTC (rev 15658) @@ -32,11 +32,15 @@ { int jobid; SMB_STRUCT_STAT sbuf; - files_struct *fsp = file_new(conn); + files_struct *fsp; fstring name; + NTSTATUS status; - if(!fsp) + status = file_new(conn, &fsp); + if(!NT_STATUS_IS_OK(status)) { + set_saved_ntstatus(status); return NULL; + } fstrcpy( name, "Remote Downlevel Document"); if (fname) { Modified: trunk/source/smbd/fake_file.c === --- trunk/source/smbd/fake_file.c 2006-05-17 11:14:26 UTC (rev 15657) +++ trunk/source/smbd/fake_file.c 2006-05-17 12:59:30 UTC (rev 15658) @@ -107,6 +107,7 @@ uint32 access_mask) { files_struct *fsp = NULL; + NTSTATUS status; /* access check */ if (current_user.ut.uid != 0) { @@ -116,8 +117,9 @@ return NULL; } - fsp = file_new(conn); - if(!fsp) { + status = file_new(conn, &fsp); + if(!NT_STATUS_IS_OK(status)) { + set_saved_ntstatus(status); return NULL; } Modified: trunk/source/smbd/files.c === --- trunk/source/smbd/files.c 2006-05-17 11:14:26 UTC (rev 15657) +++ trunk/source/smbd/files.c 2006-05-17 12:59:30 UTC (rev 15658) @@ -61,7 +61,7 @@ Find first available file slot. / -files_struct *file_new(connection_struct *conn) +NTSTATUS file_new(connection_struct *conn, files_struct **result) { int i; static int first_file; @@ -84,23 +84,19 @@ /* TODO: We have to unconditionally return a DOS error here, * W2k3 even returns ERRDOS/ERRnofids for ntcreate&x with * NTSTATUS negotiated */ - set_saved_ntstatus(NT_STATUS_TOO_MANY_OPENED_FILES); - return NULL; + return NT_STATUS_TOO_MANY_OPENED_FILES; } fsp = SMB_MALLOC_P(files_struct); if (!fsp) { - set_saved_ntstatus(NT_STATUS_NO_MEMORY); - return NULL; + return NT_STATUS_NO_MEMORY; } ZERO_STRUCTP(fsp); fsp->fh = SMB_MALLOC_P(struct fd_handle); if (!fsp->fh) { - SAFE_FREE(fsp); - set_saved_ntstatus(NT_STATUS_NO_MEMORY); - return NULL; + return NT_STATUS_NO_MEMORY; } ZERO_STRUCTP(fsp->fh); @@ -133,8 +129,9 @@ if (fsp_fi_cache.fsp == NULL) { ZERO_STRUCT(fsp_fi_cache); } - - return fsp; + + *result = fsp; + return NT_STATUS_OK; } / @@ -529,9 +526,13 @@ uint32 share_access, uint32 create_options) { - files_struct *dup_fsp = file_new(fsp->conn); + NTSTATUS status; + files_struct *dup_fsp; - if (!dup_fsp) { + status = file_new(fsp->conn, &dup_fsp); + + if (!NT_STATUS_IS_OK(status)) { + set_saved_ntstatus(status); return NULL; } Modified: trunk/source/smbd/open.c === --- trunk/source/smbd/open.c2006-05-17 11:14:26 UTC (rev 15657) +++ trunk/source/smbd/open.c2006-05-17 12:59:30 UTC (rev 15658) @@ -1336,8 +1336,9 @@ return NULL; } - fsp = file_new(conn); - if(!fsp) { + status = file_new(conn, &fsp); + if(!NT_STATUS_IS_OK(status)) { + set_saved_ntstatus(status); return NULL; } @@ -1775,13 +1776,15 @@ { files_struct *fsp = NULL; BOOL fsp_open; + NTSTATUS status; if (!VALID_STAT(*psbuf)) { return NULL; } - fsp = file_new(conn); - if(!fsp) { + status = file_new(conn, &fsp); + if(!NT_STATUS_IS_OK(status)) { + set_saved_ntstatus(status);
svn commit: samba-web r988 - in trunk/devel: .
Author: jerry Date: 2006-05-17 12:26:58 + (Wed, 17 May 2006) New Revision: 988 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba-web&rev=988 Log: cleanup of the devel index page Modified: trunk/devel/index.html Changeset: Modified: trunk/devel/index.html === --- trunk/devel/index.html 2006-05-12 22:28:56 UTC (rev 987) +++ trunk/devel/index.html 2006-05-17 12:26:58 UTC (rev 988) @@ -14,16 +14,15 @@ As of 4 April 2004, the Samba Team converted from CVS to Subversion for maintaining the Samba source code. All current development is done in a Subversion repository. All older code is in the original CVS tree; this would include 2.2.x versions of Samba, which are no longer in active development. -The latest stable release is Samba 3.0.22 (The latest production release is Samba 3.0.22 (release notes and download). +href="/samba/download/">download). -The next major release will be Samba 4.0, an ambitious -reworking of the Samba code. This development is concurrent with Samba -3.0 maintainence and development. A technology +Ongoing future research is being done for Samba 4.0 +This work is concurrent with Samba 3.0 maintenance +and development. A technology preview release is available. - Samba Branches @@ -32,7 +31,7 @@ TRUNK This is the current development branch, based on the Samba 3.0 -codebase. It is, obviously, not stable, as it is the ground where +code base. It is, obviously, not stable, as it is the ground where features for future stable releases in the Samba 3.0.x series are implemented and tested. Example checkout command: @@ -43,10 +42,7 @@ SAMBA_3_0 -This is the development area for the current stable release -branch. Updates to this branch are mostly bugfixes, but as new features -in TRUNK become stable, they will be merged here to prepare for the next -3.0.x release. +This is the development area for the 3.0.x production releases. Example checkout command: @@ -56,9 +52,7 @@ SAMBA_3_0_RELEASE -This is the staging area used by the release manager for 3.0.x -releases. This is where the actual releases are snapshotted and prepared -into tarballs. +This is the staging area used for freezing the 3.0.x release snapshots. Example checkout command: @@ -69,9 +63,11 @@ SAMBA_4_0 -This is the tree for the next major release. It is currently under heavy development. Though it hasn't yet reached an alpha release, there is a -technology preview release available. - For more information, see the roadmap document. +This is the research branch for Samba 4. + Technical Previews of this code base are available + for download. Be aware that these snapshots are intended for testing purposes + only and not for use in production environments. For more information, see + the road map document. Example checkout command: @@ -88,7 +84,7 @@ Please coordinate all development efforts on the mailto:[EMAIL PROTECTED]">samba-technical mailing list. For more information about the list, or to join the list, go to the http://lists.samba.org/mailman/listinfo/samba-technical";>samba technical mailing list page. The main samba development channel on IRC is #samba-technical, server irc.freenode.net. Please don't ask user questions in this channel (users see #samba). Channel logs are available http://irc.vernstok.nl/samba-technical.php";>here. -Also, please see our policy concering contributor copyright. +Also, please see our policy concerningcontributor copyright. Learn More
svn commit: samba r15657 - branches/SAMBA_3_0/source/utils trunk/source/utils
Author: vlendec Date: 2006-05-17 11:14:26 + (Wed, 17 May 2006) New Revision: 15657 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15657 Log: Fix some Tru64 warnings Modified: branches/SAMBA_3_0/source/utils/net_rpc.c branches/SAMBA_3_0/source/utils/net_rpc_rights.c trunk/source/utils/net_rpc.c trunk/source/utils/net_rpc_rights.c Changeset: Modified: branches/SAMBA_3_0/source/utils/net_rpc.c === --- branches/SAMBA_3_0/source/utils/net_rpc.c 2006-05-17 09:52:14 UTC (rev 15656) +++ branches/SAMBA_3_0/source/utils/net_rpc.c 2006-05-17 11:14:26 UTC (rev 15657) @@ -1606,7 +1606,7 @@ }; return cmds; -}; +} // @@ -4793,7 +4793,7 @@ }; return cmds; -}; +} // Modified: branches/SAMBA_3_0/source/utils/net_rpc_rights.c === --- branches/SAMBA_3_0/source/utils/net_rpc_rights.c2006-05-17 09:52:14 UTC (rev 15656) +++ branches/SAMBA_3_0/source/utils/net_rpc_rights.c2006-05-17 11:14:26 UTC (rev 15657) @@ -609,5 +609,5 @@ }; return cmds; -}; +} Modified: trunk/source/utils/net_rpc.c === --- trunk/source/utils/net_rpc.c2006-05-17 09:52:14 UTC (rev 15656) +++ trunk/source/utils/net_rpc.c2006-05-17 11:14:26 UTC (rev 15657) @@ -1606,7 +1606,7 @@ }; return cmds; -}; +} // @@ -4793,7 +4793,7 @@ }; return cmds; -}; +} // Modified: trunk/source/utils/net_rpc_rights.c === --- trunk/source/utils/net_rpc_rights.c 2006-05-17 09:52:14 UTC (rev 15656) +++ trunk/source/utils/net_rpc_rights.c 2006-05-17 11:14:26 UTC (rev 15657) @@ -609,5 +609,5 @@ }; return cmds; -}; +}
svn commit: samba r15656 - in branches/SAMBA_4_0/source: libcli/raw smb_server/smb torture/raw
Author: metze Date: 2006-05-17 09:52:14 + (Wed, 17 May 2006) New Revision: 15656 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15656 Log: for NT IOCTL's we need to control the max_data field for some calls metze Modified: branches/SAMBA_4_0/source/libcli/raw/interfaces.h branches/SAMBA_4_0/source/libcli/raw/rawioctl.c branches/SAMBA_4_0/source/smb_server/smb/nttrans.c branches/SAMBA_4_0/source/torture/raw/ioctl.c Changeset: Modified: branches/SAMBA_4_0/source/libcli/raw/interfaces.h === --- branches/SAMBA_4_0/source/libcli/raw/interfaces.h 2006-05-17 00:51:42 UTC (rev 15655) +++ branches/SAMBA_4_0/source/libcli/raw/interfaces.h 2006-05-17 09:52:14 UTC (rev 15656) @@ -1716,6 +1716,7 @@ uint32_t function; BOOL fsctl; uint8_t filter; + uint32_t max_data; DATA_BLOB blob; } in; struct { Modified: branches/SAMBA_4_0/source/libcli/raw/rawioctl.c === --- branches/SAMBA_4_0/source/libcli/raw/rawioctl.c 2006-05-17 00:51:42 UTC (rev 15655) +++ branches/SAMBA_4_0/source/libcli/raw/rawioctl.c 2006-05-17 09:52:14 UTC (rev 15656) @@ -77,7 +77,7 @@ nt.in.max_setup = 0; nt.in.max_param = 0; - nt.in.max_data = 0; + nt.in.max_data = parms->ntioctl.in.max_data; nt.in.setup_count = 4; nt.in.setup = (uint16_t *)setup; SIVAL(setup, 0, parms->ntioctl.in.function); Modified: branches/SAMBA_4_0/source/smb_server/smb/nttrans.c === --- branches/SAMBA_4_0/source/smb_server/smb/nttrans.c 2006-05-17 00:51:42 UTC (rev 15655) +++ branches/SAMBA_4_0/source/smb_server/smb/nttrans.c 2006-05-17 09:52:14 UTC (rev 15656) @@ -324,6 +324,7 @@ nt->ntioctl.in.function = function; nt->ntioctl.in.fsctl = fsctl; nt->ntioctl.in.filter = filter; + nt->ntioctl.in.max_data = trans->in.max_data; nt->ntioctl.in.blob = trans->in.data; status = nttrans_setup_reply(op, trans, 0, 0, 1); Modified: branches/SAMBA_4_0/source/torture/raw/ioctl.c === --- branches/SAMBA_4_0/source/torture/raw/ioctl.c 2006-05-17 00:51:42 UTC (rev 15655) +++ branches/SAMBA_4_0/source/torture/raw/ioctl.c 2006-05-17 09:52:14 UTC (rev 15656) @@ -105,6 +105,7 @@ nt.ntioctl.in.file.fnum = fnum; nt.ntioctl.in.fsctl = True; nt.ntioctl.in.filter = 0; + nt.ntioctl.in.max_data = 0; nt.ntioctl.in.blob = data_blob(NULL, 0); status = smb_raw_ioctl(cli->tree, mem_ctx, &nt); @@ -112,10 +113,11 @@ printf("trying batch oplock\n"); nt.ioctl.level = RAW_IOCTL_NTIOCTL; - nt.ntioctl.in.function = (FSCTL_FILESYSTEM | (2<<2)); + nt.ntioctl.in.function = FSCTL_REQUEST_BATCH_OPLOCK; nt.ntioctl.in.file.fnum = fnum; nt.ntioctl.in.fsctl = True; nt.ntioctl.in.filter = 0; + nt.ntioctl.in.max_data = 0; nt.ntioctl.in.blob = data_blob(NULL, 0); status = smb_raw_ioctl(cli->tree, mem_ctx, &nt);
Re: svn commit: samba r15654 - branches/SAMBA_3_0/source branches/SAMBA_3_0/source/popt trunk/source trunk/source/popt
On Wed, 2006-05-17 at 11:17 +0200, Stefan (metze) Metzmacher wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > [EMAIL PROTECTED] schrieb: > > Log: > > Update our internal copy of popt to that distributed with the RPM 4.2 > > source code. > > > should we do this in samba4 too? We're already at the latest version, I updated some months ago. Cheers, Jelmer -- Jelmer Vernooij <[EMAIL PROTECTED]> - http://samba.org/~jelmer/ signature.asc Description: This is a digitally signed message part
Re: svn commit: samba r15654 - branches/SAMBA_3_0/source branches/SAMBA_3_0/source/popt trunk/source trunk/source/popt
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 [EMAIL PROTECTED] schrieb: > Log: > Update our internal copy of popt to that distributed with the RPM 4.2 > source code. > should we do this in samba4 too? metze -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFEauo6m70gjA5TCD8RAmjoAJ9TJBFDbIkpgbieKXqCz2J+Xpr47QCgsHXK EvuYirTG/tBNEOajUQfur6Y= =rdzQ -END PGP SIGNATURE-