------------------------------------------------------------ revno: 241 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell <[EMAIL PROTECTED]> branch nick: tridge timestamp: Thu 2007-05-03 13:44:27 +1000 message: don't zero beyond packet header unnecessarily modified: common/ctdb_daemon.c ctdb_daemon.c-20070409200331-3el1kqgdb9m4ib0g-1 === modified file 'common/ctdb_daemon.c' --- a/common/ctdb_daemon.c 2007-05-02 19:51:46 +0000 +++ b/common/ctdb_daemon.c 2007-05-03 03:44:27 +0000 @@ -727,7 +727,9 @@ { int size; struct ctdb_req_header *hdr; - size = ((length+1)+(CTDB_DS_ALIGNMENT-1)) & ~(CTDB_DS_ALIGNMENT-1); + + length = MAX(length, slength); + size = (length+(CTDB_DS_ALIGNMENT-1)) & ~(CTDB_DS_ALIGNMENT-1); hdr = (struct ctdb_req_header *)talloc_size(mem_ctx, size); if (hdr == NULL) { @@ -736,9 +738,9 @@ return NULL; } talloc_set_name_const(hdr, type); - memset(hdr, 0, size); + memset(hdr, 0, slength); + hdr->length = length; hdr->operation = operation; - hdr->length = size; hdr->ctdb_magic = CTDB_MAGIC; hdr->ctdb_version = CTDB_VERSION; hdr->srcnode = ctdb->vnn; @@ -761,7 +763,10 @@ { int size; struct ctdb_req_header *hdr; - size = ((length+1)+(CTDB_DS_ALIGNMENT-1)) & ~(CTDB_DS_ALIGNMENT-1); + + length = MAX(length, slength); + size = (length+(CTDB_DS_ALIGNMENT-1)) & ~(CTDB_DS_ALIGNMENT-1); + hdr = (struct ctdb_req_header *)ctdb->methods->allocate_pkt(mem_ctx, size); if (hdr == NULL) { DEBUG(0,("Unable to allocate transport packet for operation %u of length %u\n", @@ -769,9 +774,9 @@ return NULL; } talloc_set_name_const(hdr, type); - memset(hdr, 0, size); + memset(hdr, 0, slength); + hdr->length = length; hdr->operation = operation; - hdr->length = size; hdr->ctdb_magic = CTDB_MAGIC; hdr->ctdb_version = CTDB_VERSION; hdr->generation = ctdb->vnn_map->generation;