From e481385391a25c19d82ce93fbec11a973cf82e9f Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 28 Oct 2004 12:46:59 +0000 Subject: r3322: fixed a bunch of warnings in the build, including one case where it was a real bug (This used to be commit 02d5d0f685e44bd66aff4a007f0bf34c8f915574) --- source4/lib/iconv.c | 10 +++++----- source4/libcli/auth/clikrb5.c | 2 +- source4/libcli/auth/ntlmssp_parse.c | 4 ++-- source4/libcli/auth/spnego.c | 2 +- source4/libcli/auth/spnego.h | 2 +- source4/libcli/raw/rawrequest.c | 2 +- source4/libcli/raw/rawsearch.c | 5 ++++- source4/libcli/util/asn1.c | 4 ++-- source4/librpc/idl/epmapper.idl | 4 ++-- source4/librpc/ndr/ndr.c | 2 ++ source4/librpc/rpc/dcerpc_smb.c | 2 +- 11 files changed, 22 insertions(+), 17 deletions(-) diff --git a/source4/lib/iconv.c b/source4/lib/iconv.c index f4f7660bcd..3cca734d7b 100644 --- a/source4/lib/iconv.c +++ b/source4/lib/iconv.c @@ -131,7 +131,6 @@ size_t smb_iconv(smb_iconv_t cd, char **outbuf, size_t *outbytesleft) { char cvtbuf[2048]; - char *bufp = cvtbuf; size_t bufsize; /* in many cases we can go direct */ @@ -143,18 +142,19 @@ size_t smb_iconv(smb_iconv_t cd, /* otherwise we have to do it chunks at a time */ while (*inbytesleft > 0) { - bufp = cvtbuf; + char *bufp1 = cvtbuf; + const char *bufp2 = cvtbuf; + bufsize = sizeof(cvtbuf); if (cd->pull(cd->cd_pull, - inbuf, inbytesleft, &bufp, &bufsize) == -1 + inbuf, inbytesleft, &bufp1, &bufsize) == -1 && errno != E2BIG) return -1; - bufp = cvtbuf; bufsize = sizeof(cvtbuf) - bufsize; if (cd->push(cd->cd_push, - &bufp, &bufsize, + &bufp2, &bufsize, outbuf, outbytesleft) == -1) return -1; } diff --git a/source4/libcli/auth/clikrb5.c b/source4/libcli/auth/clikrb5.c index 78492d2352..c3ea33aaec 100644 --- a/source4/libcli/auth/clikrb5.c +++ b/source4/libcli/auth/clikrb5.c @@ -386,7 +386,7 @@ cleanup_princ: { static krb5_data kdata; - kdata.data = krb5_principal_get_comp_string(context, principal, i); + kdata.data = discard_const(krb5_principal_get_comp_string(context, principal, i)); kdata.length = strlen(kdata.data); return &kdata; } diff --git a/source4/libcli/auth/ntlmssp_parse.c b/source4/libcli/auth/ntlmssp_parse.c index 22ed783666..c36bb6a4fc 100644 --- a/source4/libcli/auth/ntlmssp_parse.c +++ b/source4/libcli/auth/ntlmssp_parse.c @@ -64,7 +64,7 @@ BOOL msrpc_gen(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, case 'U': s = va_arg(ap, char *); head_size += 8; - n = push_ucs2_talloc(pointers, &pointers[i].data, s); + n = push_ucs2_talloc(pointers, (void **)&pointers[i].data, s); if (n == -1) { return False; } @@ -87,7 +87,7 @@ BOOL msrpc_gen(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, n = va_arg(ap, int); intargs[i] = n; s = va_arg(ap, char *); - n = push_ucs2_talloc(pointers, &pointers[i].data, s); + n = push_ucs2_talloc(pointers, (void **)&pointers[i].data, s); if (n == -1) { return False; } diff --git a/source4/libcli/auth/spnego.c b/source4/libcli/auth/spnego.c index 85d77992fa..2779f47474 100644 --- a/source4/libcli/auth/spnego.c +++ b/source4/libcli/auth/spnego.c @@ -483,7 +483,7 @@ static NTSTATUS gensec_spnego_update(struct gensec_security *gensec_security, TA { /* The server offers a list of mechanisms */ - char *my_mechs[] = {NULL, NULL}; + const char *my_mechs[] = {NULL, NULL}; NTSTATUS nt_status = NT_STATUS_INVALID_PARAMETER; if (!in.length) { diff --git a/source4/libcli/auth/spnego.h b/source4/libcli/auth/spnego.h index 926cb7f88d..3b9d148c67 100644 --- a/source4/libcli/auth/spnego.h +++ b/source4/libcli/auth/spnego.h @@ -41,7 +41,7 @@ enum spnego_negResult { }; struct spnego_negTokenInit { - char **mechTypes; + const char **mechTypes; int reqFlags; DATA_BLOB mechToken; DATA_BLOB mechListMIC; diff --git a/source4/libcli/raw/rawrequest.c b/source4/libcli/raw/rawrequest.c index 89155451da..dd21eb89ea 100644 --- a/source4/libcli/raw/rawrequest.c +++ b/source4/libcli/raw/rawrequest.c @@ -548,7 +548,7 @@ static size_t smbcli_req_pull_ucs2(struct smbcli_request *req, TALLOC_CTX *mem_c of bytes consumed in the packet is returned */ size_t smbcli_req_pull_ascii(struct smbcli_request *req, TALLOC_CTX *mem_ctx, - char **dest, const char *src, int byte_len, uint_t flags) + char **dest, const char *src, int byte_len, uint_t flags) { int src_len, src_len2; ssize_t ret; diff --git a/source4/libcli/raw/rawsearch.c b/source4/libcli/raw/rawsearch.c index df44dbffa4..dd8904dfd1 100644 --- a/source4/libcli/raw/rawsearch.c +++ b/source4/libcli/raw/rawsearch.c @@ -42,6 +42,8 @@ static void smb_raw_search_backend(struct smbcli_request *req, p = req->in.data + 3; for (i=0; i < count; i++) { + char *name; + search_data.search.id.reserved = CVAL(p, 0); memcpy(search_data.search.id.name, p+1, 11); search_data.search.id.handle = CVAL(p, 12); @@ -51,7 +53,8 @@ static void smb_raw_search_backend(struct smbcli_request *req, search_data.search.write_time = raw_pull_dos_date(req->transport, p + 22); search_data.search.size = IVAL(p, 26); - smbcli_req_pull_ascii(req, mem_ctx, &search_data.search.name, p+30, 13, STR_ASCII); + smbcli_req_pull_ascii(req, mem_ctx, &name, p+30, 13, STR_ASCII); + search_data.search.name = name; if (!callback(private, &search_data)) { break; } diff --git a/source4/libcli/util/asn1.c b/source4/libcli/util/asn1.c index 15d9243acd..e03b1d5f39 100644 --- a/source4/libcli/util/asn1.c +++ b/source4/libcli/util/asn1.c @@ -494,7 +494,7 @@ int asn1_tag_remaining(ASN1_DATA *data) } /* read an object ID from a ASN1 buffer */ -BOOL asn1_read_OID(ASN1_DATA *data, char **OID) +BOOL asn1_read_OID(ASN1_DATA *data, const char **OID) { uint8_t b; char *tmp_oid = NULL; @@ -525,7 +525,7 @@ BOOL asn1_read_OID(ASN1_DATA *data, char **OID) /* check that the next object ID is correct */ BOOL asn1_check_OID(ASN1_DATA *data, const char *OID) { - char *id; + const char *id; if (!asn1_read_OID(data, &id)) return False; diff --git a/source4/librpc/idl/epmapper.idl b/source4/librpc/idl/epmapper.idl index 6a60c7c47b..ce1776f34e 100644 --- a/source4/librpc/idl/epmapper.idl +++ b/source4/librpc/idl/epmapper.idl @@ -222,12 +222,12 @@ interface epmapper non-aligned. I wonder what sort of wicked substance these guys were smoking? */ - typedef [flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN)] struct { + typedef [gensize,flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN)] struct { uint16 num_floors; epm_floor floors[num_floors]; } epm_tower; - typedef [gensize] struct { + typedef struct { [value(ndr_size_epm_tower(0, &r->tower,ndr->flags))] uint32 tower_length; [subcontext(4)] epm_tower tower; } epm_twr_t; diff --git a/source4/librpc/ndr/ndr.c b/source4/librpc/ndr/ndr.c index 02eb3e95ba..3462fb20c9 100644 --- a/source4/librpc/ndr/ndr.c +++ b/source4/librpc/ndr/ndr.c @@ -390,6 +390,8 @@ static NTSTATUS ndr_map_error(enum ndr_err_code err) return NT_STATUS_BUFFER_TOO_SMALL; case NDR_ERR_ALLOC: return NT_STATUS_NO_MEMORY; + default: + break; } /* we should all error codes to different status codes */ diff --git a/source4/librpc/rpc/dcerpc_smb.c b/source4/librpc/rpc/dcerpc_smb.c index cfb02680e2..a6307a9413 100644 --- a/source4/librpc/rpc/dcerpc_smb.c +++ b/source4/librpc/rpc/dcerpc_smb.c @@ -394,7 +394,7 @@ NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe **p, io.ntcreatex.in.security_flags = 0; io.ntcreatex.in.fname = pipe_name; - status = smb_raw_open(tree, pipe_name, &io); + status = smb_raw_open(tree, tree, &io); if (!NT_STATUS_IS_OK(status)) { return status; -- cgit