Skip to content

Commit d814153

Browse files
committed
filter_kubernetes: aws: declare variable on top of the function
Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
1 parent f831f7f commit d814153

File tree

1 file changed

+30
-29
lines changed

1 file changed

+30
-29
lines changed

plugins/filter_kubernetes/kubernetes_aws.c

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,19 @@ static int get_pod_service_file_info(struct flb_kube *ctx, char **buffer)
8181
return packed;
8282
}
8383

84-
static void extract_service_attribute(msgpack_object *attr_map, const char *key_name,
84+
static void extract_service_attribute(msgpack_object *attr_map, const char *key_name,
8585
char *dest, int max_len, int *dest_len, int *fields)
8686
{
8787
struct flb_record_accessor *ra;
8888
struct flb_ra_value *val;
8989
const char *str_val;
9090
size_t str_len;
91-
91+
9292
ra = flb_ra_create((char *)key_name, FLB_FALSE);
9393
if (!ra) {
9494
return;
9595
}
96-
96+
9797
val = flb_ra_get_value_object(ra, *attr_map);
9898
if (val && val->type == FLB_RA_STRING) {
9999
str_val = flb_ra_value_buffer(val, &str_len);
@@ -149,7 +149,7 @@ static void parse_pod_service_map(struct flb_kube *ctx, char *api_buf,
149149
for (i = 0; i < api_map.via.map.size; i++) {
150150
k = api_map.via.map.ptr[i].key;
151151
v = api_map.via.map.ptr[i].val;
152-
152+
153153
if (k.type != MSGPACK_OBJECT_STR || v.type != MSGPACK_OBJECT_MAP) {
154154
flb_plg_error(ctx->ins, "key and values are not string and map");
155155
continue;
@@ -169,15 +169,15 @@ static void parse_pod_service_map(struct flb_kube *ctx, char *api_buf,
169169
KEY_ATTRIBUTES_MAX_LEN, &attrs->name_len, &attrs->fields);
170170
extract_service_attribute(&v, "$Environment", attrs->environment,
171171
KEY_ATTRIBUTES_MAX_LEN, &attrs->environment_len, &attrs->fields);
172-
extract_service_attribute(&v, "$ServiceNameSource", attrs->name_source,
172+
extract_service_attribute(&v, "$ServiceNameSource", attrs->name_source,
173173
SERVICE_NAME_SOURCE_MAX_LEN, &attrs->name_source_len, &attrs->fields);
174174
if (attrs->name[0] != '\0' || attrs->environment[0] != '\0') {
175175
pthread_mutex_lock(mutex);
176176
flb_hash_table_add(ctx->aws_pod_service_hash_table, pod_name, k.via.str.size,
177177
attrs, sizeof(struct service_attributes));
178178
pthread_mutex_unlock(mutex);
179179
}
180-
180+
181181
flb_free(attrs);
182182
flb_free(pod_name);
183183
}
@@ -287,58 +287,59 @@ int fetch_pod_service_map(struct flb_kube *ctx, char *api_server_url,
287287
int determine_platform(struct flb_kube *ctx)
288288
{
289289
int ret;
290+
size_t i;
290291
char *token_buf = NULL;
291292
size_t token_size;
292293
char *payload = NULL;
293294
size_t payload_len;
294-
char *issuer_start;
295+
char *issuer_start;
295296
char *issuer_end;
296-
char *first_dot;
297+
char *first_dot;
297298
char *second_dot;
298299
size_t payload_b64_len;
299300
size_t padded_len;
300301
char *payload_b64;
301302
size_t issuer_len;
302303
char *issuer_value;
303304
int is_eks;
304-
305+
305306
/* Read serviceaccount token */
306307
ret = flb_utils_read_file(FLB_KUBE_TOKEN, &token_buf, &token_size);
307308
if (ret != 0 || !token_buf) {
308309
return -1;
309310
}
310-
311+
311312
/* JWT tokens have 3 parts separated by dots: header.payload.signature */
312313
first_dot = strchr(token_buf, '.');
313314
if (!first_dot) {
314315
flb_free(token_buf);
315316
return -1;
316317
}
317-
318+
318319
second_dot = strchr(first_dot + 1, '.');
319320
if (!second_dot) {
320321
flb_free(token_buf);
321322
return -1;
322323
}
323-
324+
324325
/* Extract and decode the payload (middle part) */
325326
payload_b64_len = second_dot - (first_dot + 1);
326-
327+
327328
/* Calculate padded length */
328329
padded_len = payload_b64_len;
329330
while (padded_len % 4 != 0) padded_len++;
330-
331+
331332
payload_b64 = flb_malloc(padded_len + 1);
332333
if (!payload_b64) {
333334
flb_errno();
334335
flb_free(token_buf);
335336
return -1;
336337
}
337-
338+
338339
memcpy(payload_b64, first_dot + 1, payload_b64_len);
339-
340+
340341
/* Convert base64url to base64 and add padding */
341-
for (size_t i = 0; i < payload_b64_len; i++) {
342+
for (i = 0; i < payload_b64_len; i++) {
342343
if (payload_b64[i] == '-') {
343344
payload_b64[i] = '+';
344345
}
@@ -350,7 +351,7 @@ int determine_platform(struct flb_kube *ctx)
350351
payload_b64[payload_b64_len++] = '=';
351352
}
352353
payload_b64[padded_len] = '\0';
353-
354+
354355
/* Base64 decode the payload */
355356
payload = flb_malloc(payload_b64_len * 3 / 4 + 4); /* Conservative size estimate */
356357
if (!payload) {
@@ -359,50 +360,50 @@ int determine_platform(struct flb_kube *ctx)
359360
flb_free(payload_b64);
360361
return -1;
361362
}
362-
363-
ret = flb_base64_decode((unsigned char *)payload, padded_len * 3 / 4 + 4,
363+
364+
ret = flb_base64_decode((unsigned char *)payload, padded_len * 3 / 4 + 4,
364365
&payload_len, (unsigned char *)payload_b64, padded_len);
365-
366+
366367
flb_free(token_buf);
367368
flb_free(payload_b64);
368-
369+
369370
if (ret != 0) {
370371
flb_free(payload);
371372
return -1;
372373
}
373-
374+
374375
payload[payload_len] = '\0';
375-
376+
376377
/* Look for "iss" field in the JSON payload */
377378
issuer_start = strstr(payload, "\"iss\":");
378379
if (!issuer_start) {
379380
flb_free(payload);
380381
return -1;
381382
}
382-
383+
383384
/* Skip to the value part */
384385
issuer_start = strchr(issuer_start, ':');
385386
if (!issuer_start) {
386387
flb_free(payload);
387388
return -1;
388389
}
389390
issuer_start++;
390-
391+
391392
/* Skip whitespace and opening quote */
392393
while (*issuer_start == ' ' || *issuer_start == '\t') issuer_start++;
393394
if (*issuer_start != '"') {
394395
flb_free(payload);
395396
return -1;
396397
}
397398
issuer_start++;
398-
399+
399400
/* Find closing quote */
400401
issuer_end = strchr(issuer_start, '"');
401402
if (!issuer_end) {
402403
flb_free(payload);
403404
return -1;
404405
}
405-
406+
406407
/* Check if issuer contains EKS OIDC URL pattern */
407408
/* EKS OIDC URLs follow pattern: https://oidc.eks.{region}.amazonaws.com/id/{cluster-id} */
408409
issuer_len = issuer_end - issuer_start;
@@ -419,7 +420,7 @@ int determine_platform(struct flb_kube *ctx)
419420
flb_free(payload);
420421
return 1; /* EKS detected */
421422
}
422-
423+
423424
flb_free(payload);
424425
return -1; /* Not EKS */
425426
}

0 commit comments

Comments
 (0)