2828#include "ds3_utils.h"
2929
3030#ifdef _WIN32
31- #include <io.h>
31+ #include <io.h>
32+ #ifndef PRIu64
33+ #define PRIu64 "I64u"
34+ #endif
3235#else
33- #include <inttypes.h>
36+ #include <inttypes.h>
3437#endif
3538
3639
37- //The max size of an uint32_t should be 10 characters + NULL
38- static const char UNSIGNED_LONG_BASE_10[] = "4294967296";
39- static const unsigned int UNSIGNED_LONG_BASE_10_STR_LEN = sizeof(UNSIGNED_LONG_BASE_10) + 1;
40- //The max size of an uint64_t should be 20 characters + NULL
41- static const char UNSIGNED_LONG_LONG_BASE_10[] = "18446744073709551615";
42- static const unsigned int UNSIGNED_LONG_LONG_BASE_10_STR_LEN = sizeof(UNSIGNED_LONG_LONG_BASE_10) + 1;
43-
40+ //The max size of an uint32_t is 10 characters + NULL
41+ //The max size of an uint64_t is 20 characters + NULL
42+ #define STRING_BUFFER_SIZE 32
4443
4544
4645struct _ds3_metadata {
@@ -408,7 +407,7 @@ static ds3_error* _get_request_xml_nodes(
408407}
409408
410409static xmlDocPtr _generate_xml_bulk_objects_list(const ds3_bulk_object_list_response* obj_list, object_list_type list_type, ds3_job_chunk_client_processing_order_guarantee order) {
411- char size_buff[UNSIGNED_LONG_LONG_BASE_10_STR_LEN ];
410+ char size_buff[STRING_BUFFER_SIZE ];
412411 xmlDocPtr doc;
413412 ds3_bulk_object_response* obj;
414413 xmlNodePtr objects_node, object_node;
@@ -431,7 +430,8 @@ static xmlDocPtr _generate_xml_bulk_objects_list(const ds3_bulk_object_list_resp
431430
432431 for (obj_index = 0; obj_index < obj_list->num_objects; obj_index++) {
433432 obj = obj_list->objects[obj_index];
434- g_snprintf(size_buff, sizeof(char) * UNSIGNED_LONG_LONG_BASE_10_STR_LEN, "%" PRIu64, obj->length);
433+ memset(size_buff, 0, sizeof(size_buff));
434+ g_snprintf(size_buff, STRING_BUFFER_SIZE, "%" PRIu64, obj->length);
435435
436436 object_node = xmlNewNode(NULL, (xmlChar*) "Object");
437437 xmlAddChild(objects_node, object_node);
@@ -448,7 +448,7 @@ static xmlDocPtr _generate_xml_bulk_objects_list(const ds3_bulk_object_list_resp
448448}
449449
450450static xmlDocPtr _generate_xml_complete_mpu(const ds3_complete_multipart_upload_response* mpu_list) {
451- char size_buff[UNSIGNED_LONG_LONG_BASE_10_STR_LEN ];
451+ char size_buff[STRING_BUFFER_SIZE ];
452452 xmlDocPtr doc;
453453 ds3_multipart_upload_part_response* part;
454454 xmlNodePtr parts_node, part_node;
@@ -464,7 +464,7 @@ static xmlDocPtr _generate_xml_complete_mpu(const ds3_complete_multipart_upload_
464464 part_node = xmlNewNode(NULL, (xmlChar*) "Part");
465465 xmlAddChild(parts_node, part_node);
466466
467- g_snprintf(size_buff, sizeof(char) * UNSIGNED_LONG_LONG_BASE_10_STR_LEN , "%d", part->part_number);
467+ g_snprintf(size_buff, STRING_BUFFER_SIZE , "%d", part->part_number);
468468 xmlNewTextChild(part_node, NULL, (xmlChar*) "PartNumber", (xmlChar*) size_buff);
469469
470470 xmlNewTextChild(part_node, NULL, (xmlChar*) "ETag", (xmlChar*) part->etag->value);
0 commit comments