Espressif Bug Bounty Program - заработай 1000$ за 60 секунд

Сколько багов удастся найти в SDK 1.0.0 за 1 ближайший месяц


  • Всего проголосовало
    12
  • Опрос закрыт .

pvvx

Активный участник сообщества
но на этот баг они наверняка отморозятся, типа "мы так и задумывали, чтобы WDT сработал, вы пишите программы правильно, а то шлете данные, когда CTS вам не разрешает"
На это уже есть встречный вопрос :) : "Почему ваш SDK использует аппаратуру чипа всего до 5%? Причина в квалификации персонала программистов?" и т.д. :)

Там масса более сложных ошибок, для показания Оных требуется оборудование для WiFi.
По этому всё это игра в пиар для лохов.
Если не будет игроков в эту затеянную Espressif игру, то и игра быстро закончится...
Напёрсточники не работают в местах, где нет необходимого контингента...
 
Последнее редактирование:

Victor

Administrator
Команда форума
Почему ваш SDK использует аппаратуру чипа всего до 5%
Тут дело в менталитете. С одной стороны немцы с их дотошностью и педантичностью, а с другой китайцы. Так что в Espressif уверены, что SDK 1.0.0 - сделан вполне хорошо :)
 

pvvx

Активный участник сообщества
Т.е. только обозначение данной программы игры уже объявляет, на каком рынке позиционирует себя Espressif. :)
 

pvvx

Активный участник сообщества
Разработчиков дополнительного ПО, дающее рекламу их чипа и SDK – раз и обчелся. Могли бы и поддержать их хоть малой тех.информацией, но увы. На сегодня их может поддержать только “сообщество” в целях развития домашнего творчества у народа. Остальные никаких багов не ищут и не найдут. Тему можно закрывать или использовать в других целях (чем мы тут и занимаемся :)). Не будьте такими доверчивыми и коммерческого продукта, далее детской игрушки, уже, из ESP8266 не выйдет. Это демонстрируют множество закрытых проектов на нем… ИМХО.
 

pvvx

Активный участник сообщества
Да и исправление ошибок коммерческого SDK в теме народного творчества – это дело рук "самих утопающих" – не лишайте их этой игры :)
А истина - она всегда посередке...
 

Victor

Administrator
Команда форума
Да и исправление ошибок коммерческого SDK в теме народного творчества – это дело рук "самих утопающих" – не лишайте их этой игры :)
А истина - она всегда посередке...
Если честно, то я очень сомневаюсь, что китайцы вообще кому-нибудь заплатят. Или выберут своих пару человек. Но ошибки то исправят (ну или попытаются)! Так что мы в любом случае в плюсе :)
 

Victor

Administrator
Команда форума
Отчитываюсь.
Вот получил письмо из Espressif на багрепорт, денег не прислали :), но вот что пишут

1. Багрепорт инженеры Espressif подтверждают
Espressif написал(а):
Our engineer has confirmed your bug report and they will release debug method to you later.
2. Раз я не житель Китая, то предупреждают о том, что удержат некоторую комиссию и чтобы я не забывал про налоги
Espressif написал(а):
Since you are not in China, we could pay you through our offshore company and will deduct a little transfer fee if the bank needs.
You should declare tax according to your local law by yourself.
3. Этому подтвержденному багу присвоен номер 11 (похоже, что можно ожидать общее количество 30-50)
Espressif написал(а):
Так что кто знает... Может что-нибудь и получится.

@pvvx, они там еще спрашивают в какой компании я работаю - может имеет смысл указать вашу фирму, т.к. я надеюсь, что вы не против того, чтобы ваш ник появился в Espressif SDK Changelog
Может это в дальнейшем вы как-то сможете использовать для продвижения своего бизнеса.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Посмотрим что будет
Они уже выпустили SDK 1.0.1 b1 и навые доки ("2A-SDK-Espressif IoT SDK User Manual_EN_V1.0.1.pdf")
В основной секции либ SDK изменений нет (это говорит об том, что и говорил - их интересует исключительно IoT со своим сайтом). Изменения есть в AT, IoT, Smart...
Описания других ошибок я им не дам, пока не разгребут уже указанное "зацикливание по fifo UART". Т.е. не сделают правильный алгоритм обработки WDT и в xxx_exception_handlers. Это больше влияет на "выживаемость" модуля, чем имеющееся скопище ошибок в SDK...
 
Последнее редактирование:

Victor

Administrator
Команда форума
Данный SDK не поддерживает Flash более 1 Мегабайт, а галочка в доках стоит.
При большей, чем 512 Килобайт flash имеем при загрузке надпись: system param error ... и большой дамп известно от куда.
Вот что ответили:
Espressif написал(а):
1.You may need to burn blank.bin to initialize the system parameter area.
2.If it is a 2MByte flash, you should burn blank.bin at 0x1FE000.
3.Please refer to BBS http://bbs.espressif.com/viewtopic.php?f=10&t=305&p=1156 or "2A-Espressif IoT SDK User Manual" for details.
 

pvvx

Активный участник сообщества
Док, описывающий, где находятся переменные они выпустили после описания и для SDK 1.0.1 (b1) - реверс на СИ то уже для SDK 1.0.0 был дан, от куда идет "дамп" :)
Может имеет смысл именно про кэш сформулировать точнее?
Не считаю это необходимым. Если хотите получить очередную кривую затычку - то можно :)
В SDK 1.0.1 (b1) они понаписали совершенно непонятный алгоритм с переменной 107. Демку для анализа уже включил в Web-свалку на страничке "Debug and Test"...
 

Victor

Administrator
Команда форума
pvvx, по ошибке с flow control, которую вы обнаружили, Espressif только что прислали мне деньги.
Сообщите мне в личной переписке ваш адрес в paypal
 

pvvx

Активный участник сообщества
Попроще явная ошибка:
Создаем структуру struct dhcps_lease x;
Назначаем стартовый и конечный IP.
Вызываем wifi_softap_set_dhcps_lease(&x).
Пытаемся работать дальше с x, а там данные испорчены :)
Испорчены htonl():
Name: htonl
Prototype: uint32_t htonl (uint32_t hostlong)
Description:
This function converts the uint32_t integer hostlong from host byte order to network byte order.
This is used for IPv4 Internet addresses.

Код:
bool ICACHE_FLASH_ATTR wifi_softap_set_dhcps_lease(struct dhcps_lease *please)
{
    ...
    please->start_ip = htonl(please->start_ip);
    please->end_ip = htonl(please->end_ip);
    ...
}
Развертка define htonl:
Код:
#define htonl(_n)  ((u32_t)( (((_n) & 0xff) << 24) | (((_n) & 0xff00) << 8) | (((_n) >> 8)  & 0xff00) | (((_n) >> 24) & 0xff) ))
Пусть высылают на адрес сайта :) Потом объявите какой конкурс.
Когда накопим на покупку Espressif - остальное я заберу :)

Ну и сразу - вторая ошибка там-же, в китай-DHCP. При вызове dhcps_start() dhcps_lease опять преобразуется htonl-ом и не работает сравнение в parse_msg() в POOL_CHECK :)

Третья ошибка всё в той-же wifi_softap_set_dhcps_lease() :)
Она не дает до запуска AP установить "Лизу", а после запуска AP, если было отключение dhcps_stop(), и опять включение dhcps, то опять переворачивает свою внутреннюю "Лизу" кверху ногами. Пусть чинят dhcps_lease_flag флаг и уберут глупое переворачивание, дающее длинююющщщииий код, но сделанное для простоты написания на СИ глупым программистом с кучей китай-коментов :)

Ошибка четыре, всё в одной wifi_softap_set_dhcps_lease() :eek:
вызываем до включения AP c такими IP:
lease{0x08000000, 0x10000000} // 0.0.0.8...0.0.0.16
Кормим это wifi_softap_set_dhcps_lease()
Получаем:
bad_lease{0x00000008, 0x00000010} // 8.0.0.0...16.0.0.0
Всё - AP теперь ни с кем не соединиться и все их проверки в wifi_softap_set_dhcps_lease() на смарку....

PS: И главное так в каждой функции, написанной Espressif :) В тянутых из опен - ошибок нет. Пусть готовят 5 лимонов $....
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ну тут они отмажутся, скажут что и сами знали т.к. в SDK 1.0.0
Это не 1. DHCP client may get wrong IP address. Это другое :) А отмазаться они всегда могут - просто скажут, что пошутили - гарантий ни на ПО ни их заявы нигде нет. :)
Только в суд, что украли код у VMware и нарушили лицензию. И это не спрятать - украденные куски кода у всех ESP8266 в ROM-BIOS :)
 

Victor

Administrator
Команда форума
Вот очередной отчет :)
Я им отправил:
Data in struct dhcps_lease damaged by htonl() in wifi_softap_set_dhcps_lease()

1. Define struct dhcps_lease x;
2. Set start and end address
3. call wifi_softap_set_dhcps_lease(&x), but start and end addresses damaged.
  1. bool ICACHE_FLASH_ATTR wifi_softap_set_dhcps_lease(struct dhcps_lease *please)
  2. {
  3. ...
  4. please->start_ip = htonl(please->start_ip);
  5. please->end_ip = htonl(please->end_ip);
  6. ...
  7. }
  1. [HASHTAG]#define[/HASHTAG] htonl(_n) ((u32_t)( (((_n) & 0xff) << 24) | (((_n) & 0xff00) << 8) | (((_n) >> 8) & 0xff00) | (((_n) >> 24) & 0xff) ))
Они пишут
In order to calculate, we indeed change the order of IP address. For example,192.168.3.1 will be changed to 1.3.168.192.
Thus, customers need to maintain an original IP address of external on their own.
Any more questions, please let us know.
Так что это не баг - это фича :)
 
Сверху Снизу