sab123: (Default)
[personal profile] sab123
Изъ ИЕЕЕ пишутъ со ссылкой на http://finitestate.io/wp-content/uploads/2019/06/Finite-State-SCA1-Final.pdf :

Huawei engineers disguised known unsafe functions (such as memcpy) as the "safe" version (memcpy_s) by creating wrapper functions with the "safe" name but none of the safety checks.

Там же пишут, что они использовали "безопасные" варианты только в 17% случаев, но это обвинение на самом деле может быть чушь: в реальности есть полно случаев, где "безопасные" варианты совершенно не добавляют безопасности, поскольку неперекрытие и без того проверятеся другими способами. А вот "оптимизированные" варианты функций с якобы проверками, но без проверок - это креативно.

Date: 2021-08-19 09:21 pm (UTC)
From: [personal profile] alll
Ну, куда более нормальное решение на самом деле, чем кажется на первый взгляд (и очень, гм, конфуцианское) - когда дойдут руки, просто перепишут код "безопасных функций" на безопасный, а остальной код достаточно будет чисто механически пересобрать.
Edited Date: 2021-08-19 09:22 pm (UTC)

Date: 2021-08-20 09:56 am (UTC)
From: [personal profile] alll
Конечно. Но какое-то время надо. А когда у вас в очереди несколько десятков тысяч задач...

Date: 2021-08-20 06:42 pm (UTC)
From: [personal profile] alll
Конечно. В конце-концов наличие буквосочетания "safe" в имени вовсе не означает, что функция всегда будет делать именно то, что нужно. Надо ещё как-то возвращать из неё ошибки и корректно эти ошибки обрабатывать уже по месту использования. Но как минимум первый шаг сделан.

Date: 2021-08-21 04:23 pm (UTC)
relyef: (Default)
From: [personal profile] relyef
Я в свое время накувыркался с strdup, которая на Irix'e была null-safe. И дикое количество кода ее использовало без проверок. А потом появился покупатель у которого был только Solaris, и тут началось

January 2026

S M T W T F S
     12 3
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 5th, 2026 10:34 am
Powered by Dreamwidth Studios