The Samba-Bugzilla – Attachment 2346 Details for
Bug 3974
smbclient tar creating option arguments are confused with password provided in command line
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
try to fix clash between tar option parsing and reading service/password from the command line
samba3_smbclient_tar_opt.patch (text/plain), 2.44 KB, created by
Simo Sorce
on 2007-03-26 15:11:06 UTC
(
hide
)
Description:
try to fix clash between tar option parsing and reading service/password from the command line
Filename:
MIME Type:
Creator:
Simo Sorce
Created:
2007-03-26 15:11:06 UTC
Size:
2.44 KB
patch
obsolete
>Index: client/client.c >=================================================================== >--- client/client.c (revision 21918) >+++ client/client.c (working copy) >@@ -3847,6 +3847,7 @@ > char *p; > int rc = 0; > fstring new_workgroup; >+ BOOL first_opt = True; > struct poptOption long_options[] = { > POPT_AUTOHELP > >@@ -3900,6 +3901,44 @@ > in_client = True; /* Make sure that we tell lp_load we are */ > > while ((opt = poptGetNextOpt(pc)) != -1) { >+ >+ /* bad hack to cope with the breackage the -T option would cause >+ * by eating the wrong arguments. We need to eat arg 0,[1,2] before */ >+ if (first_opt) { >+ int argind = 0; >+ while (poptPeekArg(pc)) { >+ switch(argind) { >+ case 0: /* progname */ >+ poptGetArg(pc); /* skip */ >+ break; >+ >+ case 1: /* service name */ >+ pstrcpy(service,poptGetArg(pc)); >+ /* Convert any '/' characters in the service name to '\' characters */ >+ string_replace(service, '/','\\'); >+ >+ if (count_chars(service,'\\') < 3) { >+ d_printf("\n%s: Not enough '\\' characters in service\n",service); >+ poptPrintUsage(pc, stderr, 0); >+ exit(1); >+ } >+ break; >+ case 2: /* command line provided password */ >+ cmdline_auth_info.got_pass = True; >+ pstrcpy(cmdline_auth_info.password,poptGetArg(pc)); >+ break; >+ >+ default: >+ /* uh? garbage? */ >+ d_printf("\nUnknown option: [%s]!\n", poptGetArg(pc)); >+ poptPrintUsage(pc, stderr, 0); >+ exit(1); >+ } >+ argind++; >+ } >+ first_opt = False; >+ } >+ > switch (opt) { > case 'M': > /* Messages are sent to NetBIOS name type 0x3 >@@ -3959,7 +3998,7 @@ > */ > optnum -= i; > for (i = 0; i < optnum; i++) >- poptGetOptArg(pc); >+ poptGetArg(pc); > } > break; > case 'D': >@@ -3971,8 +4010,6 @@ > } > } > >- poptGetArg(pc); >- > /* check for the -P option */ > > if ( port != 0 ) >@@ -4011,23 +4048,6 @@ > else > pstrcpy( calling_name, global_myname() ); > >- if(poptPeekArg(pc)) { >- pstrcpy(service,poptGetArg(pc)); >- /* Convert any '/' characters in the service name to '\' characters */ >- string_replace(service, '/','\\'); >- >- if (count_chars(service,'\\') < 3) { >- d_printf("\n%s: Not enough '\\' characters in service\n",service); >- poptPrintUsage(pc, stderr, 0); >- exit(1); >- } >- } >- >- if (poptPeekArg(pc) && !cmdline_auth_info.got_pass) { >- cmdline_auth_info.got_pass = True; >- pstrcpy(cmdline_auth_info.password,poptGetArg(pc)); >- } >- > init_names(); > > if(new_name_resolve_order)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 3974
:
2346
|
2347
|
2348
|
2349