Подробности

[В начало]

Проблема в стандарте № S0313

Краткое описание

Поведение функции mvcur() на некорректных адресах не соответствует SuSv2

Подробное описание

LSB 3.1 ссылается на SUSv2 при описании функции mvcur() из библиотеки ncurses, в котором сказано: "If (newrow,newcol) is not a valid address for the terminal in use, mvcur() fails."

Реализация функции mvcur() в ncurses не возвращает ошибку, если ее вызвать с очень большими аргументами (-1000000, -1000000), (10000000, 10000000).

#include 
#include 

int main(int argc, char* argv[]) 
{ 
    int res;
        
    initscr(); 

    move(LINES/2, COLS/2); 
    res = mvcur(LINES/2, COLS/2, 10000000, 10000000); 

    endwin();       
    
    printf("mvcur() returned %d (expected: %d)\n", res, ERR); 

    return 0; 
} 

Раздел стандарта

Linux Standard Base Core Specification 3.1, Chapter 14. Utility Libraries, 14.5. Interfaces for libncurses.

Принято

LSB Bugzilla, 1642

Статус

Исправлена в LSB 4.0

[В начало]