g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found pipeName in reply type %d",
reply->expectedReplyType);
+ g_free(val);
+ } else {
+ reply->replyData.sessionReq.pipeName = val;
}
- reply->replyData.sessionReq.pipeName = val;
break;
case PARSE_STATE_TICKET:
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found ticket in reply type %d",
reply->expectedReplyType);
+ g_free(val);
+ } else {
+ reply->replyData.createTicket.ticket = val;
}
- reply->replyData.createTicket.ticket = val;
break;
case PARSE_STATE_TOKEN:
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found token in reply type %d",
reply->expectedReplyType);
+ g_free(val);
}
break;
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found token in reply type %d",
reply->expectedReplyType);
+ g_free(val);
}
break;
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found username in reply type %d",
reply->expectedReplyType);
+ g_free(val);
}
break;
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found pemCert in reply type %d",
reply->expectedReplyType);
+ g_free(val);
}
break;
case PARSE_STATE_CERTCOMMENT:
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found cert comment in reply type %d",
reply->expectedReplyType);
+ g_free(val);
}
break;
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found SAMLSubject in reply type %d",
reply->expectedReplyType);
+ g_free(val);
}
break;
case PARSE_STATE_USERHANDLETYPE:
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found NamedSubject in reply type %d",
reply->expectedReplyType);
+ g_free(val);
}
break;
case PARSE_STATE_ANYSUBJECT:
"Found AnySubject in reply type %d",
reply->expectedReplyType);
}
+ g_free(val);
break;
case PARSE_STATE_COMMENT:
if (PROTO_REPLY_QUERYALIASES == reply->expectedReplyType) {
g_set_error(error, G_MARKUP_ERROR_PARSE, VGAUTH_E_INVALID_ARGUMENT,
"Found comment in reply type %d",
reply->expectedReplyType);
+ g_free(val);
}
break;
default:
g_warning("Unexpected value '%s' in unhandled parseState %d in %s\n",
val, reply->parseState, __FUNCTION__);
+ g_free(val);
ASSERT(0);
}
}
VGAuthError err = VGAUTH_E_OK;
GMarkupParseContext *parseContext;
gsize len;
- gchar *rawReply = NULL;
ProtoReply *reply;
gboolean bRet;
GError *gErr = NULL;
* transport.
*/
while (!reply->complete) {
+ gchar *rawReply = NULL;
+
err = VGAuth_CommReadData(ctx, &len, &rawReply);
if (0 == len) { // EOF -- not expected
err = VGAUTH_E_COMM;
rawReply,
len,
&gErr);
+ g_free(rawReply);
if (!bRet) {
/*
* XXX Could drain the wire here, but since this should
* XXX need some way to break out if packet never completed
* yet socket left valid. timer?
*/
- g_free(rawReply);
}
#if VGAUTH_PROTO_TRACE