diff --git a/HISTORY b/HISTORY index 014d94b..8b92a9e 100644 --- a/HISTORY +++ b/HISTORY @@ -1,6 +1,7 @@ -Version 6.06 2019-12-26 +Version 6.06 2019-12-30 * bugfixed: fdfs_storaged can't quit normally + * bugfixed: init/memset return ip address to ascii 0 for Java SDK Version 6.05 2019-12-25 * fdfs_trackerd and fdfs_storaged print the server version in usage. diff --git a/tracker/tracker_service.c b/tracker/tracker_service.c index 063df82..372bedd 100644 --- a/tracker/tracker_service.c +++ b/tracker/tracker_service.c @@ -2399,7 +2399,7 @@ static int tracker_deal_server_list_group_storages(struct fast_task_info *pTask) pStorageId = NULL; } - memset(pTask->data + sizeof(TrackerHeader), 0, \ + memset(pTask->data + sizeof(TrackerHeader), 0, pTask->size - sizeof(TrackerHeader)); pDest = pStart = (TrackerStorageStat *)(pTask->data + \ sizeof(TrackerHeader)); @@ -2617,11 +2617,12 @@ static int tracker_deal_service_query_fetch_update( \ } - pTask->length = sizeof(TrackerHeader) + \ - TRACKER_QUERY_STORAGE_FETCH_BODY_LEN + \ + pTask->length = sizeof(TrackerHeader) + + TRACKER_QUERY_STORAGE_FETCH_BODY_LEN + (server_count - 1) * (IP_ADDRESS_SIZE - 1); p = pTask->data + sizeof(TrackerHeader); + memset(p, 0, pTask->length - sizeof(TrackerHeader)); memcpy(p, pGroup->group_name, FDFS_GROUP_NAME_MAX_LEN); p += FDFS_GROUP_NAME_MAX_LEN; strcpy(p, fdfs_get_ipaddr_by_peer_ip( @@ -3009,6 +3010,8 @@ static int tracker_deal_service_query_storage( \ return ENOENT; } + memset(p, 0, active_count * (IP_ADDRESS_SIZE + + FDFS_PROTO_PKG_LEN_SIZE)); ppEnd = pStoreGroup->active_servers + active_count; for (ppServer=pStoreGroup->active_servers; ppServerip_addrs, pTask->client_ip)); p += IP_ADDRESS_SIZE - 1;