Fix whitespace and some coverity errors

This commit is contained in:
Wilco Baan Hofman 2016-11-28 21:50:57 +01:00
parent 74a29c8d4b
commit cb1c8426ae

View file

@ -111,7 +111,9 @@ STATUS tlv_to_linked_list(TALLOC_CTX *mem_ctx, DATA_BLOB data, struct ll_tlv **f
element->length = *tlvptr++; element->length = *tlvptr++;
if (tlvptr + element->length > data.data + data.length) { if (tlvptr + element->length > data.data + data.length) {
prev_elem->next = NULL; if (prev_elem != NULL) {
prev_elem->next = NULL;
}
talloc_free(element); talloc_free(element);
return ST_PARSE_ERROR; return ST_PARSE_ERROR;
} }
@ -194,7 +196,7 @@ STATUS handle_chiron_msg_response(struct chiron_context *ctx, struct chiron_mess
element = element->next; element = element->next;
} }
send_chiron_msg_handshake(ctx, msg); send_chiron_msg_handshake(ctx, msg);
return ST_OK; return ST_OK;
} }
@ -216,10 +218,10 @@ STATUS send_chiron_msg_challenge(struct chiron_context *ctx, struct chiron_messa
/* Make an md5 hash of the account code with the seq byte appended. */ /* Make an md5 hash of the account code with the seq byte appended. */
md5input = talloc_array(in, uint8_t, in->msg.account.length + 1); md5input = talloc_array(in, uint8_t, in->msg.account.length + 1);
NO_MEM_RETURN(md5input); NO_MEM_RETURN(md5input);
memcpy(md5input, in->msg.account.account_code, in->msg.account.length); memcpy(md5input, in->msg.account.account_code, in->msg.account.length);
md5input[in->msg.account.length] = in->seq; md5input[in->msg.account.length] = in->seq;
out->msg.challenge.md5_check = talloc_array(out, uint8_t, MD5_HASH_LEN); out->msg.challenge.md5_check = talloc_array(out, uint8_t, MD5_HASH_LEN);
NO_MEM_RETURN(out->msg.challenge.md5_check); NO_MEM_RETURN(out->msg.challenge.md5_check);
@ -282,8 +284,8 @@ STATUS send_chiron_msg_challenge(struct chiron_context *ctx, struct chiron_messa
memcpy(md5input, &raw_out.data[MSG_HDR_LEN + MD5_HASH_LEN], CHALLENGE_LEN); memcpy(md5input, &raw_out.data[MSG_HDR_LEN + MD5_HASH_LEN], CHALLENGE_LEN);
md5input[CHALLENGE_LEN] = in->seq; md5input[CHALLENGE_LEN] = in->seq;
md5_init(&md5); md5_init(&md5);
md5_update(&md5, CHALLENGE_LEN + 1, md5input); md5_update(&md5, CHALLENGE_LEN + 1, md5input);
md5_digest(&md5, MD5_HASH_LEN, ctx->md5_last_out); md5_digest(&md5, MD5_HASH_LEN, ctx->md5_last_out);
@ -311,7 +313,7 @@ STATUS handle_chiron_msg_account(struct chiron_context *ctx, struct chiron_messa
ctx->account_code = talloc_memdup(msg, msg->msg.account.account_code, msg->msg.account.length); ctx->account_code = talloc_memdup(msg, msg->msg.account.account_code, msg->msg.account.length);
NO_MEM_RETURN(ctx->account_code); NO_MEM_RETURN(ctx->account_code);
send_chiron_msg_challenge(ctx, msg); send_chiron_msg_challenge(ctx, msg);
return ST_OK; return ST_OK;
} }
@ -341,9 +343,11 @@ STATUS handle_message(struct chiron_context *ctx, DATA_BLOB data) {
break; break;
case CHIRON_ACK: case CHIRON_ACK:
status = handle_chiron_msg_ack(ctx, msg); status = handle_chiron_msg_ack(ctx, msg);
break;
default: default:
DEBUG(0, "Got unexpected message type: %s.", DEBUG(0, "Got unexpected message type: %s.",
ndr_print_chiron_msg_type_enum(msg, msg->msg_type)); ndr_print_chiron_msg_type_enum(msg, msg->msg_type));
status = ST_NOT_IMPLEMENTED;
break; break;
} }
@ -429,6 +433,7 @@ static STATUS listen_server(TALLOC_CTX *mem_ctx, const char *bindaddr, const cha
if (sock < 0) { if (sock < 0) {
DEBUG(0, "Could not create socket in server"); DEBUG(0, "Could not create socket in server");
freeaddrinfo(first_server);
return ST_SOCKET_FAILURE; return ST_SOCKET_FAILURE;
} }
listen(sock, 128); listen(sock, 128);
@ -460,7 +465,12 @@ static STATUS listen_server(TALLOC_CTX *mem_ctx, const char *bindaddr, const cha
//} else { //} else {
{ {
struct chiron_context *client_ctx = talloc_zero(mem_ctx, struct chiron_context); struct chiron_context *client_ctx = talloc_zero(mem_ctx, struct chiron_context);
NO_MEM_RETURN(client_ctx); if (client_ctx == NULL) {
close(sock);
close(clientfd);
DEBUG(0, "Out of memory");
return ST_OUT_OF_MEMORY;
}
client_ctx->clientaddr = (struct sockaddr *)&clientaddr; client_ctx->clientaddr = (struct sockaddr *)&clientaddr;
client_ctx->clientfd = clientfd; client_ctx->clientfd = clientfd;
@ -533,15 +543,15 @@ int main (int argc, char **argv) {
const uint8_t in_message1[] = { const uint8_t in_message1[] = {
0x41, 0x03, 0x88, 0x04, 0x33, 0x35, 0x30, 0x30 }; 0x41, 0x03, 0x88, 0x04, 0x33, 0x35, 0x30, 0x30 };
const uint8_t out_message1[] = { const uint8_t out_message1[] = {
0x43, 0x03, 0x88, 0x19, 0xaa, 0xd9, 0xaa, 0x5f, 0x43, 0x03, 0x88, 0x19, 0xaa, 0xd9, 0xaa, 0x5f,
0x30, 0x5d, 0x95, 0x0d, 0x96, 0x8d, 0x4e, 0x26, 0x30, 0x5d, 0x95, 0x0d, 0x96, 0x8d, 0x4e, 0x26,
0x02, 0x1a, 0x1a, 0xd8, 0x96, 0xf4, 0xc4, 0x86, 0x02, 0x1a, 0x1a, 0xd8, 0x96, 0xf4, 0xc4, 0x86,
0xd9, 0x83, 0x4d, 0x87, 0x48 }; 0xd9, 0x83, 0x4d, 0x87, 0x48 };
const uint8_t in_message2[] = { const uint8_t in_message2[] = {
0x52, 0x03, 0x88, 0x1f, 0xe5, 0x65, 0x48, 0x30, 0x52, 0x03, 0x88, 0x1f, 0xe5, 0x65, 0x48, 0x30,
0x56, 0x8e, 0x3b, 0x42, 0x02, 0x6c, 0xcc, 0x9b, 0x56, 0x8e, 0x3b, 0x42, 0x02, 0x6c, 0xcc, 0x9b,
0xdc, 0x82, 0xb0, 0x17, 0xba, 0xef, 0x52, 0x61, 0xdc, 0x82, 0xb0, 0x17, 0xba, 0xef, 0x52, 0x61,
0xe8, 0xce, 0x7b, 0xcb, 0x57, 0x85, 0x2b, 0x18, 0xe8, 0xce, 0x7b, 0xcb, 0x57, 0x85, 0x2b, 0x18,
0xbf, 0xfa, 0xf1 }; 0xbf, 0xfa, 0xf1 };
const uint8_t out_message2[] = { const uint8_t out_message2[] = {
0x4b, 0x03, 0xc0, 0x00 }; 0x4b, 0x03, 0xc0, 0x00 };
@ -561,14 +571,13 @@ int main (int argc, char **argv) {
uint8_t buf[sizeof(out_message2)] = {0}; uint8_t buf[sizeof(out_message2)] = {0};
arcfour_crypt(&rc4, sizeof(out_message2) - 4, buf, out_message2 + 4); arcfour_crypt(&rc4, sizeof(out_message2) - 4, buf, out_message2 + 4);
hexdump("Decrypted outgoing payload", buf, sizeof(out_message2) - 4); hexdump("Decrypted outgoing payload", buf, sizeof(out_message2) - 4);
return 0;
/* /*
* Open up a TCP socket the Chiron port * Open up a TCP socket the Chiron port
*/ */
listen_server(mem_ctx, "::", CHIRON_PORT, "tcp", handle_connection); //listen_server(mem_ctx, "::", CHIRON_PORT, "tcp", handle_connection);
talloc_free(mem_ctx);
return 0; return 0;
} }