Skip to content

Commit 6b087ae

Browse files
authored
aws_util: fix failing sanitizer builds (#2604)
Signed-off-by: Wesley Pettit <wppttt@amazon.com>
1 parent 631c6d3 commit 6b087ae

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
@@ -722,6 +722,8 @@ flb_sds_t flb_get_s3_key(const char *format, time_t time, const char *tag, char
722722
int i = 0;
723723
int ret = 0;
724724
char *tag_token = NULL;
725+
char *key;
726+
int len;
725727
flb_sds_t tmp = NULL;
726728
flb_sds_t buf = NULL;
727729
flb_sds_t s3_key = NULL;
@@ -832,20 +834,28 @@ flb_sds_t flb_get_s3_key(const char *format, time_t time, const char *tag, char
832834
flb_sds_destroy(tmp);
833835
tmp = NULL;
834836

835-
/* A string longer than S3_KEY_SIZE is created to store the formatted timestamp. */
836-
tmp = flb_sds_create_size(S3_KEY_SIZE);
837-
if (!tmp) {
837+
/* A string no longer than S3_KEY_SIZE is created to store the formatted timestamp. */
838+
key = flb_malloc(S3_KEY_SIZE * sizeof(char));
839+
if (!key) {
838840
goto error;
839841
}
840842

841-
ret = strftime(tmp, S3_KEY_SIZE, s3_key, gmt);
843+
ret = strftime(key, S3_KEY_SIZE, s3_key, gmt);
842844
if(ret == 0){
843845
flb_warn("[s3_key] Object key length is longer than the 1024 character limit.");
844846
}
845-
846847
flb_sds_destroy(s3_key);
847-
s3_key = tmp;
848-
FLB_SDS_HEADER(s3_key)->len = strlen(s3_key);
848+
849+
len = strlen(key);
850+
if (len > S3_KEY_SIZE) {
851+
len = S3_KEY_SIZE;
852+
}
853+
854+
s3_key = flb_sds_create_len(key, len);
855+
flb_free(key);
856+
if (!s3_key) {
857+
goto error;
858+
}
849859

850860
flb_sds_destroy(tmp_tag);
851861
tmp_tag = NULL;

0 commit comments

Comments
 (0)