TALLOC_CTX *mem_ctx;
+ mem_ctx = talloc_named(NULL, 0, "manage_gensec_request internal mem_ctx");
+
if (*private1) {
state = (struct gensec_ntlm_state *)*private1;
} else {
if (strlen(buf) < 2) {
DEBUG(1, ("query [%s] invalid", buf));
printf("BH Query invalid\n");
+ talloc_free(mem_ctx);
return;
}
talloc_free(want_feature_list);
want_feature_list = talloc_strndup(state, buf+3, strlen(buf)-3);
printf("OK\n");
+ talloc_free(mem_ctx);
return;
}
- in = base64_decode_data_blob(buf + 3);
+ in = base64_decode_data_blob_talloc(mem_ctx, buf + 3);
} else {
in = data_blob(NULL, 0);
}
} else if ( (strncmp(buf, "OK", 2) == 0)) {
/* Just return BH, like ntlm_auth from Samba 3 does. */
printf("BH Command expected\n");
- data_blob_free(&in);
+ talloc_free(mem_ctx);
return;
} else if ( (strncmp(buf, "TT ", 3) != 0) &&
(strncmp(buf, "KK ", 3) != 0) &&
(strncmp(buf, "GF", 2) != 0)) {
DEBUG(1, ("SPNEGO request [%s] invalid prefix\n", buf));
printf("BH SPNEGO request invalid prefix\n");
- data_blob_free(&in);
+ talloc_free(mem_ctx);
return;
}
- mem_ctx = talloc_named(NULL, 0, "manage_gensec_request internal mem_ctx");
-
/* setup gensec */
if (!(state->gensec_state)) {
switch (stdio_helper_mode) {
state->set_password,
CRED_SPECIFIED);
printf("OK\n");
- data_blob_free(&in);
talloc_free(mem_ctx);
return;
}
neg_flags = gensec_ntlmssp_neg_flags(state->gensec_state);
if (neg_flags == 0) {
printf("BH\n");
+ talloc_free(mem_ctx);
return;
}
printf("GF 0x%08x\n", neg_flags);
+ talloc_free(mem_ctx);
return;
}