r11137: Compile with only 2 warnings (I'm still working on that code) on a gcc4
[samba.git] / source / libsmb / spnego.c
index 2cf3480fce3a2156f2466e616bd87637636f6c85..6cc4436a0cf9f74db6be864fea0f37825a054ff3 100644 (file)
@@ -45,9 +45,11 @@ static BOOL read_negTokenInit(ASN1_DATA *asn1, negTokenInit_t *token)
                        token->mechTypes = SMB_MALLOC_P(const char *);
                        for (i = 0; !asn1->has_error &&
                                     0 < asn1_tag_remaining(asn1); i++) {
+                               char *p_oid = NULL;
                                token->mechTypes = 
                                        SMB_REALLOC_ARRAY(token->mechTypes, const char *, i + 2);
-                               asn1_read_OID(asn1, &token->mechTypes[i]);
+                               asn1_read_OID(asn1, &p_oid);
+                               token->mechTypes[i] = p_oid;
                        }
                        token->mechTypes[i] = NULL;
                        
@@ -317,7 +319,7 @@ BOOL free_spnego_data(SPNEGO_DATA *spnego)
                if (spnego->negTokenInit.mechTypes) {
                        int i;
                        for (i = 0; spnego->negTokenInit.mechTypes[i]; i++) {
-                               free(spnego->negTokenInit.mechTypes[i]);
+                               free(CONST_DISCARD(char *,spnego->negTokenInit.mechTypes[i]));
                        }
                        free(spnego->negTokenInit.mechTypes);
                }