LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Кстати, а вот может ты прокомментируешь вот этот код?

    fd = open( oldpath, O_RDONLY );
    if( fd < 0 )
    {
	_logf( LOG_ERR, "Can't open file '%s': %s\n", oldpath, strerror(errno) );
	return;
    }
    ret = read( fd, buf, sizeof(buf) - 1 );
    close( fd );

    buf[ret] = 0;
    s = buf;

Возможно, я недостаточно специалист в C, но если по какой-то причине read() не пройдёт и вернёт -1, то 0 будет записан куда-то не туда в стеке и мы засрём что-то другое на стеке по соседству. Можно ли назвать автора этого кода лютым говнокодером?

Код я вот отсюда взял: https://github.com/stanson-ch/xmppcd/blob/9f390f85a5facadfc6707976f44fb0face95d402/src/main.c#L140

Исходная версия hateyoufeel, :

Кстати, а вот может ты прокомментируешь вот этот код?

    fd = open( oldpath, O_RDONLY );
    if( fd < 0 )
    {
	_logf( LOG_ERR, "Can't open file '%s': %s\n", oldpath, strerror(errno) );
	return;
    }
    ret = read( fd, buf, sizeof(buf) - 1 );
    close( fd );

    buf[ret] = 0;
    s = buf;

Возможно, я недостаточно специалист в C, но если по какой-то причине read() не пройдёт и вернёт -1, то 0 будет записан куда-то не туда и мы получим сегфолт. Можно ли назвать автора этого кода лютым говнокодером?

Код я вот отсюда взял: https://github.com/stanson-ch/xmppcd/blob/9f390f85a5facadfc6707976f44fb0face95d402/src/main.c#L140