sscanf (%s)

Тема в разделе "WASM.RESEARCH", создана пользователем ormoulu, 27 мар 2019.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Код (Text):
    1.  
    2. void foo (char* instr)
    3. {
    4.     instr [0x100-1] = 0;
    5.     localstr [0x100];
    6.  
    7.     sscanf (instr, "pad %s ", localstr);
    8. }
    9.  
    Существуют ли условия, при которых произойдет выход за пределы буфера localstr при перезаписи, т.е. переполнение?
    Библиотеки любые стандартные win/*nix.
     
  2. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Это ничего не значащие макро определения. Передача управления происходит внутри определённых обьектов/функций, поэтому нужно их содержимое что бы знать логику их работы. А это - ничего не значащий текст. Что такое instr" и во что это превратит копилер не известно.
     
  3. njeen

    njeen Active Member

    Публикаций:
    0
    Регистрация:
    26 мар 2017
    Сообщения:
    139
    Адрес:
    Ташлинск
    > Существуют ли условия, при которых произойдет выход за пределы буфера localstr при перезаписи, т.е. переполнение?
    Если убрать нёх 'pad' , то в данном случае - нет.