mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
Fix a number of client-side fstring/pstring mixups.
Andrew Bartlett
(This used to be commit fe1cc779d5
)
This commit is contained in:
parent
22d6569ed5
commit
73b0a2bdf8
@ -2978,7 +2978,7 @@ static void remember_query_host(const char *arg,
|
||||
}
|
||||
break;
|
||||
case 'D':
|
||||
pstrcpy(base_directory,optarg);
|
||||
fstrcpy(base_directory,optarg);
|
||||
break;
|
||||
case 'c':
|
||||
cmdstr = optarg;
|
||||
|
@ -324,9 +324,11 @@ static int interpret_short_filename(struct cli_state *cli, char *p,file_info *fi
|
||||
finfo->mtime = finfo->atime = finfo->ctime;
|
||||
finfo->size = IVAL(p,26);
|
||||
clistr_pull(cli, finfo->name, p+30, sizeof(finfo->name), 12, STR_ASCII);
|
||||
if (strcmp(finfo->name, "..") && strcmp(finfo->name, "."))
|
||||
fstrcpy(finfo->short_name,finfo->name);
|
||||
|
||||
if (strcmp(finfo->name, "..") && strcmp(finfo->name, ".")) {
|
||||
strncpy(finfo->short_name,finfo->name, sizeof(finfo->short_name)-1);
|
||||
finfo->short_name[sizeof(finfo->short_name)-1] = '\0';
|
||||
}
|
||||
|
||||
return(DIR_STRUCT_SIZE);
|
||||
}
|
||||
|
||||
|
@ -122,33 +122,33 @@ BOOL ntv2_owf_gen(const uchar owf[16],
|
||||
smb_ucs2_t *user;
|
||||
smb_ucs2_t *domain;
|
||||
|
||||
int user_byte_len;
|
||||
int domain_byte_len;
|
||||
size_t user_byte_len;
|
||||
size_t domain_byte_len;
|
||||
|
||||
HMACMD5Context ctx;
|
||||
|
||||
user_byte_len = push_ucs2_allocate(&user, user_in);
|
||||
if (user_byte_len < 0) {
|
||||
DEBUG(0, ("push_ucs2_allocate() for user returned %d (probably malloc() failure)\n", user_byte_len));
|
||||
if (user_byte_len == (size_t)-1) {
|
||||
DEBUG(0, ("push_uss2_allocate() for user returned -1 (probably malloc() failure)\n"));
|
||||
return False;
|
||||
}
|
||||
|
||||
domain_byte_len = push_ucs2_allocate(&domain, domain_in);
|
||||
if (domain_byte_len < 0) {
|
||||
DEBUG(0, ("push_ucs2_allocate() for domain returned %d (probably malloc() failure)\n", domain_byte_len));
|
||||
if (domain_byte_len == (size_t)-1) {
|
||||
DEBUG(0, ("push_uss2_allocate() for domain returned -1 (probably malloc() failure)\n"));
|
||||
return False;
|
||||
}
|
||||
|
||||
strupper_w(user);
|
||||
strupper_w(domain);
|
||||
|
||||
SMB_ASSERT(user_byte_len >= 2);
|
||||
SMB_ASSERT(domain_byte_len >= 2);
|
||||
|
||||
/* We don't want null termination */
|
||||
user_byte_len = user_byte_len - 2;
|
||||
domain_byte_len = domain_byte_len - 2;
|
||||
|
||||
SMB_ASSERT(user_byte_len >= 0);
|
||||
SMB_ASSERT(domain_byte_len >= 0);
|
||||
|
||||
hmac_md5_init_limK_to_64(owf, 16, &ctx);
|
||||
hmac_md5_update((const unsigned char *)user, user_byte_len, &ctx);
|
||||
hmac_md5_update((const unsigned char *)domain, domain_byte_len, &ctx);
|
||||
|
@ -193,14 +193,14 @@ static struct cli_state *connect_one(char *share, int snum)
|
||||
if (!got_pass) {
|
||||
char *pass = getpass("Password: ");
|
||||
if (pass) {
|
||||
pstrcpy(password[0], pass);
|
||||
pstrcpy(password[1], pass);
|
||||
fstrcpy(password[0], pass);
|
||||
fstrcpy(password[1], pass);
|
||||
}
|
||||
}
|
||||
|
||||
if (got_pass == 1) {
|
||||
pstrcpy(password[1], password[0]);
|
||||
pstrcpy(username[1], username[0]);
|
||||
fstrcpy(password[1], password[0]);
|
||||
fstrcpy(username[1], username[0]);
|
||||
}
|
||||
|
||||
if (!cli_session_setup(c, username[snum],
|
||||
@ -591,8 +591,8 @@ static void usage(void)
|
||||
load_interfaces();
|
||||
|
||||
if (getenv("USER")) {
|
||||
pstrcpy(username[0],getenv("USER"));
|
||||
pstrcpy(username[1],getenv("USER"));
|
||||
fstrcpy(username[0],getenv("USER"));
|
||||
fstrcpy(username[1],getenv("USER"));
|
||||
}
|
||||
|
||||
seed = time(NULL);
|
||||
@ -613,11 +613,11 @@ static void usage(void)
|
||||
d_printf("Max of 2 usernames\n");
|
||||
exit(1);
|
||||
}
|
||||
pstrcpy(username[got_pass],optarg);
|
||||
fstrcpy(username[got_pass],optarg);
|
||||
p = strchr_m(username[got_pass],'%');
|
||||
if (p) {
|
||||
*p = 0;
|
||||
pstrcpy(password[got_pass], p+1);
|
||||
fstrcpy(password[got_pass], p+1);
|
||||
got_pass++;
|
||||
}
|
||||
break;
|
||||
|
@ -169,7 +169,7 @@ static struct cli_state *connect_one(char *share)
|
||||
if (!got_pass) {
|
||||
char *pass = getpass("Password: ");
|
||||
if (pass) {
|
||||
pstrcpy(password, pass);
|
||||
fstrcpy(password, pass);
|
||||
}
|
||||
}
|
||||
|
||||
@ -504,7 +504,7 @@ static void usage(void)
|
||||
load_interfaces();
|
||||
|
||||
if (getenv("USER")) {
|
||||
pstrcpy(username,getenv("USER"));
|
||||
fstrcpy(username,getenv("USER"));
|
||||
}
|
||||
|
||||
seed = time(NULL);
|
||||
@ -512,11 +512,11 @@ static void usage(void)
|
||||
while ((opt = getopt(argc, argv, "U:s:ho:aAW:O")) != EOF) {
|
||||
switch (opt) {
|
||||
case 'U':
|
||||
pstrcpy(username,optarg);
|
||||
fstrcpy(username,optarg);
|
||||
p = strchr_m(username,'%');
|
||||
if (p) {
|
||||
*p = 0;
|
||||
pstrcpy(password, p+1);
|
||||
fstrcpy(password, p+1);
|
||||
got_pass = 1;
|
||||
}
|
||||
break;
|
||||
|
@ -213,7 +213,7 @@ struct cli_state *connect_one(char *share)
|
||||
if (!got_pass) {
|
||||
char *pass = getpass("Password: ");
|
||||
if (pass) {
|
||||
pstrcpy(password, pass);
|
||||
fstrcpy(password, pass);
|
||||
}
|
||||
}
|
||||
|
||||
@ -456,7 +456,7 @@ static void usage(void)
|
||||
load_interfaces();
|
||||
|
||||
if (getenv("USER")) {
|
||||
pstrcpy(username,getenv("USER"));
|
||||
fstrcpy(username,getenv("USER"));
|
||||
}
|
||||
|
||||
seed = time(NULL);
|
||||
@ -479,11 +479,11 @@ static void usage(void)
|
||||
max_protocol = interpret_protocol(optarg, max_protocol);
|
||||
break;
|
||||
case 'U':
|
||||
pstrcpy(username,optarg);
|
||||
fstrcpy(username,optarg);
|
||||
p = strchr_m(username,'%');
|
||||
if (p) {
|
||||
*p = 0;
|
||||
pstrcpy(password, p+1);
|
||||
fstrcpy(password, p+1);
|
||||
got_pass = 1;
|
||||
}
|
||||
break;
|
||||
|
@ -4055,7 +4055,7 @@ static void usage(void)
|
||||
get_myname(myname);
|
||||
|
||||
if (*username == 0 && getenv("LOGNAME")) {
|
||||
pstrcpy(username,getenv("LOGNAME"));
|
||||
fstrcpy(username,getenv("LOGNAME"));
|
||||
}
|
||||
|
||||
argc--;
|
||||
@ -4110,11 +4110,11 @@ static void usage(void)
|
||||
#endif
|
||||
break;
|
||||
case 'U':
|
||||
pstrcpy(username,optarg);
|
||||
fstrcpy(username,optarg);
|
||||
p = strchr_m(username,'%');
|
||||
if (p) {
|
||||
*p = 0;
|
||||
pstrcpy(password, p+1);
|
||||
fstrcpy(password, p+1);
|
||||
gotpass = 1;
|
||||
}
|
||||
break;
|
||||
@ -4128,7 +4128,7 @@ static void usage(void)
|
||||
while (!gotpass) {
|
||||
p = getpass("Password:");
|
||||
if (p) {
|
||||
pstrcpy(password, p);
|
||||
fstrcpy(password, p);
|
||||
gotpass = 1;
|
||||
}
|
||||
}
|
||||
|
@ -210,7 +210,7 @@ int main(int argc,char *argv[])
|
||||
{
|
||||
int opt;
|
||||
unsigned int lookup_type = 0x0;
|
||||
pstring lookup;
|
||||
fstring lookup;
|
||||
extern int optind;
|
||||
extern char *optarg;
|
||||
BOOL find_master=False;
|
||||
|
@ -718,7 +718,7 @@ static struct cli_state *connect_one(const char *share)
|
||||
if (!got_pass) {
|
||||
char *pass = getpass("Password: ");
|
||||
if (pass) {
|
||||
pstrcpy(password, pass);
|
||||
fstrcpy(password, pass);
|
||||
got_pass = True;
|
||||
}
|
||||
}
|
||||
@ -806,7 +806,7 @@ You can string acls together with spaces, commas or newlines\n\
|
||||
|
||||
if ((p=strchr_m(username,'%'))) {
|
||||
*p = 0;
|
||||
pstrcpy(password,p+1);
|
||||
fstrcpy(password,p+1);
|
||||
got_pass = True;
|
||||
memset(strchr_m(getenv("USER"), '%') + 1, 'X',
|
||||
strlen(password));
|
||||
@ -820,7 +820,7 @@ You can string acls together with spaces, commas or newlines\n\
|
||||
p = strchr_m(username,'%');
|
||||
if (p) {
|
||||
*p = 0;
|
||||
pstrcpy(password, p+1);
|
||||
fstrcpy(password, p+1);
|
||||
got_pass = 1;
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user