1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

r23571: Fix, parsing of multi byte share names.

Thanks to SATOH Fumiyasu
Fixes 4720

Jerry,
this is a showstopper for 3.0.25b, please grab it into
SAMBA_3_0_RELEASE before cuting the tarballs.

Simo.
This commit is contained in:
Simo Sorce 2007-06-21 17:05:59 +00:00 committed by Gerald (Jerry) Carter
parent 27fdf995d1
commit d2846e6b90

View File

@ -3970,14 +3970,6 @@ static int do_message_op(void)
/* if the service has not yet been specified lets see if it is available in the popt stack */ /* if the service has not yet been specified lets see if it is available in the popt stack */
if (!service_opt && poptPeekArg(pc)) { if (!service_opt && poptPeekArg(pc)) {
pstrcpy(service, poptGetArg(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);
}
service_opt = True; service_opt = True;
} }
@ -4065,14 +4057,6 @@ static int do_message_op(void)
/* if the service has not yet been specified lets see if it is available in the popt stack */ /* if the service has not yet been specified lets see if it is available in the popt stack */
if (!service_opt && poptPeekArg(pc)) { if (!service_opt && poptPeekArg(pc)) {
pstrcpy(service, poptGetArg(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);
}
service_opt = True; service_opt = True;
} }
@ -4111,6 +4095,16 @@ static int do_message_op(void)
} }
load_interfaces(); load_interfaces();
if (service_opt) {
/* 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 ( strlen(new_workgroup) != 0 ) if ( strlen(new_workgroup) != 0 )
set_global_myworkgroup( new_workgroup ); set_global_myworkgroup( new_workgroup );