diff options
author | Jeremy Allison <jra@samba.org> | 2012-08-08 15:35:28 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2012-08-09 12:06:54 -0700 |
commit | 526e875cec15761099438e17df3f56bc2bd5b761 (patch) | |
tree | 8ad776c58b3a25b8739b03cdaf330c295bc570b7 /source3/libsmb | |
parent | e1ec86a49ce1d7c3ebe99fc175ffad70a03c4a0b (diff) | |
download | samba-526e875cec15761099438e17df3f56bc2bd5b761.tar.gz samba-526e875cec15761099438e17df3f56bc2bd5b761.tar.bz2 samba-526e875cec15761099438e17df3f56bc2bd5b761.zip |
Check error returns from strupper_m() (in all reasonable places).
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/cliconnect.c | 4 | ||||
-rw-r--r-- | source3/libsmb/clirap.c | 8 | ||||
-rw-r--r-- | source3/libsmb/clirap2.c | 8 | ||||
-rw-r--r-- | source3/libsmb/namequery_dc.c | 5 | ||||
-rw-r--r-- | source3/libsmb/nmblib.c | 6 |
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); |