diff options
author | Volker Lendecke <vlendec@samba.org> | 2006-06-19 19:07:39 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:18:48 -0500 |
commit | e7fc37cf0f4bd2c0f25865fb07d1bff27b239130 (patch) | |
tree | 05321a37f1ad2b6082ee1f84beeb1fbe589fe519 /source3/libsmb | |
parent | 5c822ecc495bbac95704378c6e09885255076cbe (diff) | |
download | samba-e7fc37cf0f4bd2c0f25865fb07d1bff27b239130.tar.gz samba-e7fc37cf0f4bd2c0f25865fb07d1bff27b239130.tar.xz samba-e7fc37cf0f4bd2c0f25865fb07d1bff27b239130.zip |
r16360: Fix Klocwork ID 136 520 521 522 523 542 574 575 576 607
in net_rpc.c: 715 716 732 734 735 736 737 738 739 749
in net_rpc_audit.c: 754 755 756
in net_rpc_join.c: 757
in net_rpc_registry: 766 767
in net_rpc_samsync.c: 771 773
in net_sam.c: 797 798
Volker
(This used to be commit 3df0bf7d6050fd7c9ace72487d4f74d92e30a584)
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/clidfs.c | 9 | ||||
-rw-r--r-- | source3/libsmb/libsmb_compat.c | 16 | ||||
-rw-r--r-- | source3/libsmb/libsmbclient.c | 4 |
3 files changed, 25 insertions, 4 deletions
diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c index 298f4d1b54..e564bc4295 100644 --- a/source3/libsmb/clidfs.c +++ b/source3/libsmb/clidfs.c @@ -652,9 +652,12 @@ BOOL cli_resolve_path( const char *mountpt, struct cli_state *rootcli, const cha fullpath[consumed/2] = '\0'; dos_clean_name( fullpath ); - ppath = strchr_m( fullpath, '\\' ); - ppath = strchr_m( ppath+1, '\\' ); - ppath = strchr_m( ppath+1, '\\' ); + if ((ppath = strchr_m( fullpath, '\\' )) == NULL) + return False; + if ((ppath = strchr_m( ppath+1, '\\' )) == NULL) + return False; + if ((ppath = strchr_m( ppath+1, '\\' )) == NULL) + return False; ppath++; pstr_sprintf( newmount, "%s\\%s", mountpt, ppath ); diff --git a/source3/libsmb/libsmb_compat.c b/source3/libsmb/libsmb_compat.c index 5699e153bb..cfd5948e26 100644 --- a/source3/libsmb/libsmb_compat.c +++ b/source3/libsmb/libsmb_compat.c @@ -341,6 +341,10 @@ int smbc_fsetxattr(int fd, int flags) { SMBCFILE * file = find_fd(fd); + if (file == NULL) { + errno = EBADF; + return -1; + } return statcont->setxattr(statcont, file->fname, name, value, size, flags); } @@ -367,6 +371,10 @@ int smbc_fgetxattr(int fd, size_t size) { SMBCFILE * file = find_fd(fd); + if (file == NULL) { + errno = EBADF; + return -1; + } return statcont->getxattr(statcont, file->fname, name, value, size); } @@ -386,6 +394,10 @@ int smbc_fremovexattr(int fd, const char *name) { SMBCFILE * file = find_fd(fd); + if (file == NULL) { + errno = EBADF; + return -1; + } return statcont->removexattr(statcont, file->fname, name); } @@ -408,6 +420,10 @@ int smbc_flistxattr(int fd, size_t size) { SMBCFILE * file = find_fd(fd); + if (file == NULL) { + errno = EBADF; + return -1; + } return statcont->listxattr(statcont, file->fname, list, size); } diff --git a/source3/libsmb/libsmbclient.c b/source3/libsmb/libsmbclient.c index 4ea0ab6eb6..98264dfa86 100644 --- a/source3/libsmb/libsmbclient.c +++ b/source3/libsmb/libsmbclient.c @@ -3932,7 +3932,9 @@ add_ace(SEC_ACL **the_acl, return True; } - aces = SMB_CALLOC_ARRAY(SEC_ACE, 1+(*the_acl)->num_aces); + if ((aces = SMB_CALLOC_ARRAY(SEC_ACE, 1+(*the_acl)->num_aces)) == NULL) { + return False; + } memcpy(aces, (*the_acl)->ace, (*the_acl)->num_aces * sizeof(SEC_ACE)); memcpy(aces+(*the_acl)->num_aces, ace, sizeof(SEC_ACE)); newacl = make_sec_acl(ctx, (*the_acl)->revision, |