170 похожих чатов

Кто-То может помочь понять, что происходит? Почему там хвосты других

данных в конце иногда, хм?

rd_kafka_jwt_b64_decode_payload из
https://github.com/confluentinc/librdkafka/blob/v1.9.2/src/rdkafka_sasl_oauthbearer_oidc.c, где я убрал static, чтобы использовать извне.

Я наконец-то локализировал проблему после дня дебага, но поведение очень странное.
int
main(
int argc,
char** argv)
{
const char* jwt_token = "eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJKb2huIERvZSIsImV4cCI6LTV9.Y";

for (size_t i = 0; i < 4; ++i)
{
char* decoded_payloads = nullptr;
const char* errstr = rd_kafka_jwt_b64_decode_payload(jwt_token, &decoded_payloads);
assert(!errstr);
printf("Payloads: %s;\n", decoded_payloads);
}
return 0;
}


Вывод
Payloads: {"sub":"John Doe","exp":-5};
Payloads: {"sub":"John Doe","exp":-5}ret;
Payloads: {"sub":"John Doe","exp":-5};
Payloads: {"sub":"John Doe","exp":-5}oint.url;

22 ответов

13 просмотров
Gleb-Pylypets Автор вопроса

эти хвосты похожи на данные типа client.secret, token.endpoint.url. Посмотреть, что внутри токена можно на jwt.io - там обычный JSON

Это твоя функция? Xxxxfdecode_payloads?

Gleb-Pylypets Автор вопроса
Ilya Zviagin
Это твоя функция? Xxxxfdecode_payloads?

нет, это из librdkafka. но даже если её вынести в main.cpp, то проблема остаётся та же. https://github.com/confluentinc/librdkafka/blob/v1.9.2/src/rdkafka_sasl_oauthbearer_oidc.c

Gleb Pylypets
нет, это из librdkafka. но даже если её вынести в ...

Эта функция что ты вызываешь? static const char *rd_kafka_jwt_b64_decode_payload(const char *src, char **bufplainp) ?

Gleb Pylypets
+

А как ты не вызываешь, если она static? Это же невозможно...

Gleb-Pylypets Автор вопроса
Gleb-Pylypets Автор вопроса

Вот, писал.

Gleb-Pylypets Автор вопроса
Gleb Pylypets
А можно детальнее?)

Расскажу, но это к твоей проблеме может и не иметь отношения...

Gleb-Pylypets Автор вопроса
Ilya Zviagin
Как думаешь, почему она static?

Не знаю ( Думал, что по дизайну не нужно её экспортировать, поэтому и статик

Gleb-Pylypets Автор вопроса
Gleb-Pylypets Автор вопроса
Ilya Zviagin
А ПОЧЕМУ не нужно еë экспортировать?

не было необходимости - чтобы не торчали лишние символы в .so?

Gleb Pylypets
не было необходимости - чтобы не торчали лишние си...

Нет, не поэтому. Потому что она не предназначена для вызова снаружи, клиентом библиотеки. Вполне возможно, что эта функция может вызываться только из других функций этой библиотеки, которые знают как еë вызывать правильно и как правильно интерпретировать результат. Но это не точно, потому что точно это можно сказать только очень хорошо зная эту библиотеку

Gleb-Pylypets Автор вопроса
Ilya Zviagin
Нет, не поэтому. Потому что она не предназначена...

Ну это мелочи же. Я изучил код либы, поэтому знаю как использовать

Gleb Pylypets
Ну это мелочи же. Я изучил код либы, поэтому знаю ...

я смотрю, тут наглядный пример работы hyrum's law

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
22
почому оно не работает?
Vi Chapmann ٩( 💢•̀ з•́)و Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта