From d6acfd441d70c0083276a9eed0d89f06bce1d4e6 Mon Sep 17 00:00:00 2001 From: Luigi Semenzato Date: Tue, 8 Jan 2013 16:23:11 -0800 Subject: Fix bad free order in tlcl_generator.c. Fix suggested by the OpenSUSE friends: https://build.opensuse.org/package/view_file?expand=1&file=fix-tlcl-generator.patch&package=vboot&project=devel%3AFactory%3AARM%3AContrib%3AChromebook for this bug: http://paste.opensuse.org/86254908 BUG=chromium-os:37707 TEST=emerge-daisy vboot_reference BRANCH=none Change-Id: I61c116152fab7b997a84f44da89c93b89659e852 Reviewed-on: https://gerrit.chromium.org/gerrit/40902 Reviewed-by: Randall Spangler Tested-by: Luigi Semenzato Commit-Queue: Luigi Semenzato --- utility/tlcl_generator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/utility/tlcl_generator.c b/utility/tlcl_generator.c index 659a05d6..882562b0 100644 --- a/utility/tlcl_generator.c +++ b/utility/tlcl_generator.c @@ -54,7 +54,7 @@ typedef struct Command { * added at increasing offsets. */ static void AddVisibleField(Command* cmd, const char* name, int offset) { - Field* fld = (Field*) malloc(sizeof(Field)); + Field* fld = (Field*) calloc(1, sizeof(Field)); if (cmd->fields != NULL) { assert(offset > fn->offset); } @@ -70,7 +70,7 @@ static void AddVisibleField(Command* cmd, const char* name, int offset) { */ static void AddInitializedField(Command* cmd, int offset, int size, uint32_t value) { - Field* fld = (Field*) malloc(sizeof(Field)); + Field* fld = (Field*) calloc(1, sizeof(Field)); fld->next = cmd->fields; cmd->fields = fld; fld->name = NULL; @@ -83,7 +83,7 @@ static void AddInitializedField(Command* cmd, int offset, /* Create a structure representing a TPM command datagram. */ Command* newCommand(TPM_COMMAND_CODE code, int size) { - Command* cmd = (Command*) malloc(sizeof(Command)); + Command* cmd = (Command*) calloc(1, sizeof(Command)); cmd->size = size; AddInitializedField(cmd, 0, sizeof(TPM_TAG), TPM_TAG_RQU_COMMAND); AddInitializedField(cmd, sizeof(TPM_TAG), sizeof(uint32_t), size); @@ -523,8 +523,8 @@ static void FreeFields(Field* fld) { static void FreeCommands(Command* cmd) { if (cmd != NULL) { Command* next_command = cmd->next; - free(cmd); FreeFields(cmd->fields); + free(cmd); FreeCommands(next_command); } } -- cgit v1.2.1