Skip to content

Commit b69ed27

Browse files
committed
aws_util: fix failing sanitizer builds
Signed-off-by: Wesley Pettit <wppttt@amazon.com>
1 parent 9c4646a commit b69ed27

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

src/aws/flb_aws_util.c

+17-7
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,8 @@ flb_sds_t flb_get_s3_key(const char *format, time_t time, const char *tag, char
714714
int i = 0;
715715
int ret = 0;
716716
char *tag_token = NULL;
717+
char *key;
718+
int len;
717719
flb_sds_t tmp = NULL;
718720
flb_sds_t buf = NULL;
719721
flb_sds_t s3_key = NULL;
@@ -819,20 +821,28 @@ flb_sds_t flb_get_s3_key(const char *format, time_t time, const char *tag, char
819821

820822
flb_sds_destroy(tmp);
821823

822-
/* A string longer than S3_KEY_SIZE is created to store the formatted timestamp. */
823-
tmp = flb_sds_create_size(S3_KEY_SIZE);
824-
if (!tmp) {
824+
/* A string no longer than S3_KEY_SIZE is created to store the formatted timestamp. */
825+
key = flb_malloc(S3_KEY_SIZE * sizeof(char));
826+
if (!key) {
825827
goto error;
826828
}
827829

828-
ret = strftime(tmp, S3_KEY_SIZE, s3_key, gmt);
830+
ret = strftime(key, S3_KEY_SIZE, s3_key, gmt);
829831
if(ret == 0){
830832
flb_warn("[s3_key] Object key length is longer than the 1024 character limit.");
831833
}
832-
833834
flb_sds_destroy(s3_key);
834-
s3_key = tmp;
835-
FLB_SDS_HEADER(s3_key)->len = strlen(s3_key);
835+
836+
len = strlen(key);
837+
if (len > S3_KEY_SIZE) {
838+
len = S3_KEY_SIZE;
839+
}
840+
841+
s3_key = flb_sds_create_len(key, len);
842+
flb_free(key);
843+
if (!s3_key) {
844+
goto error;
845+
}
836846

837847
flb_sds_destroy(tmp_tag);
838848
return s3_key;

0 commit comments

Comments
 (0)