summaryrefslogtreecommitdiff
path: root/source3/libsmb
diff options
context:
space:
mode:
Diffstat (limited to 'source3/libsmb')
-rw-r--r--source3/libsmb/cliconnect.c4
-rw-r--r--source3/libsmb/clirap.c8
-rw-r--r--source3/libsmb/clirap2.c8
-rw-r--r--source3/libsmb/namequery_dc.c5
-rw-r--r--source3/libsmb/nmblib.c6
5 files changed, 23 insertions, 8 deletions
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index cd914bf852..b74faa6fd9 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -2048,7 +2048,9 @@ NTSTATUS cli_session_setup(struct cli_state *cli,
(p=strchr_m(user2,*lp_winbind_separator()))) {
*p = 0;
user = p+1;
- strupper_m(user2);
+ if (!strupper_m(user2)) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
workgroup = user2;
}
diff --git a/source3/libsmb/clirap.c b/source3/libsmb/clirap.c
index 6685fbd1d8..7c185ef5ad 100644
--- a/source3/libsmb/clirap.c
+++ b/source3/libsmb/clirap.c
@@ -117,13 +117,17 @@ bool cli_NetWkstaUserLogon(struct cli_state *cli,char *user, char *workstation)
SSVAL(p,0,1);
p += 2;
strlcpy(p,user,sizeof(param)-PTR_DIFF(p,param));
- strupper_m(p);
+ if (!strupper_m(p)) {
+ return false;
+ }
p += 21;
p++;
p += 15;
p++;
strlcpy(p, workstation,sizeof(param)-PTR_DIFF(p,param));
- strupper_m(p);
+ if (!strupper_m(p)) {
+ return false;
+ }
p += 16;
SSVAL(p, 0, CLI_BUFFER_SIZE);
p += 2;
diff --git a/source3/libsmb/clirap2.c b/source3/libsmb/clirap2.c
index 1333f468f4..05d8fb2a29 100644
--- a/source3/libsmb/clirap2.c
+++ b/source3/libsmb/clirap2.c
@@ -1876,12 +1876,16 @@ bool cli_NetWkstaUserLogoff(struct cli_state *cli, const char *user, const char
PUTDWORD(p, 0); /* Null pointer */
PUTDWORD(p, 0); /* Null pointer */
strlcpy(upperbuf, user, sizeof(upperbuf));
- strupper_m(upperbuf);
+ if (!strupper_m(upperbuf)) {
+ return false;
+ }
tmp = upperbuf;
PUTSTRINGF(p, tmp, RAP_USERNAME_LEN);
p++; /* strange format, but ok */
strlcpy(upperbuf, workstation, sizeof(upperbuf));
- strupper_m(upperbuf);
+ if (!strupper_m(upperbuf)) {
+ return false;
+ }
tmp = upperbuf;
PUTSTRINGF(p, tmp, RAP_MACHNAME_LEN);
PUTWORD(p, CLI_BUFFER_SIZE);
diff --git a/source3/libsmb/namequery_dc.c b/source3/libsmb/namequery_dc.c
index f4c2fc1929..df5eeb8d89 100644
--- a/source3/libsmb/namequery_dc.c
+++ b/source3/libsmb/namequery_dc.c
@@ -137,7 +137,10 @@ static bool ads_dc_name(const char *domain,
SAFE_FREE(sitename);
fstrcpy(srv_name, ads->config.ldap_server_name);
- strupper_m(srv_name);
+ if (!strupper_m(srv_name)) {
+ ads_destroy(&ads);
+ return false;
+ }
#ifdef HAVE_ADS
*dc_ss = ads->ldap.ss;
#else
diff --git a/source3/libsmb/nmblib.c b/source3/libsmb/nmblib.c
index 767ff81476..a6816db5b9 100644
--- a/source3/libsmb/nmblib.c
+++ b/source3/libsmb/nmblib.c
@@ -933,7 +933,7 @@ void make_nmb_name( struct nmb_name *n, const char *name, int type)
fstring unix_name;
memset( (char *)n, '\0', sizeof(struct nmb_name) );
fstrcpy(unix_name, name);
- strupper_m(unix_name);
+ (void)strupper_m(unix_name);
push_ascii(n->name, unix_name, sizeof(n->name), STR_TERMINATE);
n->name_type = (unsigned int)type & 0xFF;
push_ascii(n->scope, lp_netbios_scope(), 64, STR_TERMINATE);
@@ -1277,7 +1277,9 @@ char *name_mangle(TALLOC_CTX *mem_ctx, const char *In, char name_type)
nstring buf_dos;
pull_ascii_fstring(buf_unix, In);
- strupper_m(buf_unix);
+ if (!strupper_m(buf_unix)) {
+ return NULL;
+ }
push_ascii_nstring(buf_dos, buf_unix);
put_name(buf, buf_dos, ' ', name_type);