The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"25 уязвимостей в RTOS Zephyr, в том числе эксплуатируемые че..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "25 уязвимостей в RTOS Zephyr, в том числе эксплуатируемые че..." +2 +/
Сообщение от Аноним84701 (ok), 27-Май-20, 19:07 
> Только скорость математики в несколько раз обвалится, из-за разбавления проверками.

Но далеко не всегда и далеко не везде:


#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#define unlikely(x) __builtin_expect(!!(x), 0)

int main(int argc, char **argv) {
  int i = 0, add = atoi(argv[2]), max = atoi(argv[3]);
  printf("int max %d\n", INT_MAX);
  if (*argv[1] != 'c') {
    puts("unchecked");
    for (; i < max; i += add);
  } else {
    puts("checked\n");
    while (i < max) {
      int of = __builtin_add_overflow(i, add, &i);
      if (unlikely(of)) {
        if (of)
          puts("overflow detected!!1\n");
        break;
      }
    }
  }
  printf("i = %d\n", i);
  return 0;
}


старенький i5 M, тайминги:

% export TIMEFMT=$'%E'
% gcc -Wall -Wextra -Wpedantic -O3 addbench. #gcc 9
% time ./a.out c 1 2147483647
int max 2147483647
checked
i = 2147483647
2,10s

% time ./a.out u 1 2147483647
int max 2147483647
unchecked
i = 2147483647
2,05s

% for i in {1..50}; do time ./a.out c 1 2147483647 > /dev/null; done 2>&1 | awk '{sum+=$1}END{print "avg:" sum/NR}'|column        
avg:1,8536  # checked

% for i in {1..50}; do time ./a.out u 1 2147483647 > /dev/null; done 2>&1 | awk '{sum+=$1}END{print "avg:" sum/NR}'|column
avg:1,8606  # unchecked


Бонус:

% time ./a.out c 2 2147483647
int max 2147483647
checked
overflow detected!!1
i = -2147483648
1,21s

% time ./a.out u 2 2147483647
int max 2147483647
unchecked
^C
21,80s   #неопределенное поведение, оно такое.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
25 уязвимостей в RTOS Zephyr, в том числе эксплуатируемые че..., opennews, 27-Май-20, 10:47  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру