Re: svn commit: samba r15654 - branches/SAMBA_3_0/source branches/SAMBA_3_0/source/popt trunk/source trunk/source/popt

2006-05-17 Thread Stefan (metze) Metzmacher
-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-


Re: svn commit: samba r15654 - branches/SAMBA_3_0/source branches/SAMBA_3_0/source/popt trunk/source trunk/source/popt

2006-05-17 Thread Jelmer Vernooij
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


svn commit: samba r15656 - in branches/SAMBA_4_0/source: libcli/raw smb_server/smb torture/raw

2006-05-17 Thread metze
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=revroot=sambarev=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 | (22));
+   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);



svn commit: samba r15657 - branches/SAMBA_3_0/source/utils trunk/source/utils

2006-05-17 Thread vlendec
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=revroot=sambarev=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 r15658 - in trunk/source: printing smbd

2006-05-17 Thread vlendec
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=revroot=sambarev=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 ntcreatex 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);
return NULL;
  

svn commit: samba r15659 - in branches/SAMBA_4_0/source/lib/registry: .

2006-05-17 Thread jelmer
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=revroot=sambarev=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;
+   }
+   }
+   if (!key_off) {
+

svn commit: samba r15660 - branches/SAMBA_3_0/source/smbd trunk/source/smbd

2006-05-17 Thread vlendec
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=revroot=sambarev=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 r15661 - in branches/SAMBA_4_0/source/libcli/util: .

2006-05-17 Thread metze
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=revroot=sambarev=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 r15662 - in branches/tmp/vl-posixacls/source: . modules

2006-05-17 Thread jmcd
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=revroot=sambarev=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=revroot=sambarev=15662


svn commit: samba r15663 - in branches/SAMBA_4_0/source/libnet: .

2006-05-17 Thread mimir
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=revroot=sambarev=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 = talloc_asprintf(mem_ctx,
-  

svn commit: samba r15664 - in branches/SAMBA_4_0/source/torture/libnet: .

2006-05-17 Thread mimir
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=revroot=sambarev=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;
+   }   
+   return False;
+   

svn commit: samba r15665 - in branches/SAMBA_4_0/source/script/tests: .

2006-05-17 Thread mimir
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=revroot=sambarev=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 r15666 - in branches/SAMBA_4_0/source/libnet: .

2006-05-17 Thread mimir
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=revroot=sambarev=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 r15667 - in branches/SAMBA_4_0/source/libnet: .

2006-05-17 Thread mimir
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=revroot=sambarev=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 r15668 - in branches/SAMBA_3_0/source: include locking smbd

2006-05-17 Thread jra
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=revroot=sambarev=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 finishing write behind on a close we can get a write
-   

svn commit: samba r15669 - in trunk/source: include locking smbd

2006-05-17 Thread jra
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=revroot=sambarev=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) {
-   saved_errno = ret;
-   err1 = 

Build status as of Thu May 18 00:00:02 2006

2006-05-17 Thread build
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 r15670 - in branches/SAMBA_3_0/source/locking: .

2006-05-17 Thread jra
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=revroot=sambarev=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));



svn commit: samba r15672 - in branches/SAMBA_3_0/source/lib: .

2006-05-17 Thread jra
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=revroot=sambarev=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 r15673 - in trunk/source/lib: .

2006-05-17 Thread jra
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=revroot=sambarev=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 r15674 - in trunk/source/nsswitch: .

2006-05-17 Thread jra
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=revroot=sambarev=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 r15675 - in branches/SAMBA_3_0/source/nsswitch: .

2006-05-17 Thread jra
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=revroot=sambarev=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 r15676 - in branches/SAMBA_3_0/source/auth: .

2006-05-17 Thread jra
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=revroot=sambarev=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 r15677 - in trunk/source/auth: .

2006-05-17 Thread jra
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=revroot=sambarev=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 r15678 - in trunk/source/smbd: .

2006-05-17 Thread jra
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=revroot=sambarev=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 r15679 - branches/SAMBA_3_0/source/popt trunk/source/popt

2006-05-17 Thread jerry
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=revroot=sambarev=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 r15680 - branches/SAMBA_3_0/source/utils trunk/source/utils

2006-05-17 Thread jerry
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=revroot=sambarev=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_fprintf(stderr, Only NTLM authentication will be 

svn commit: samba r15681 - branches/SAMBA_3_0/source/libsmb trunk/source/libsmb

2006-05-17 Thread jerry
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=revroot=sambarev=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);