LINUX.ORG.RU

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

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

Нормальные люди используют snprintf, а у него есть как минимум ошибка недостаточного размера буфера как раз.

Он не возвращает ошибку если буфер маленький, просто тихо обрезает, а потом злоумышленник может это использовать.

#include <stdio.h>

int main() {
    char path[5];
    if (snprintf(path, sizeof(path), "/usr/share/useless-program") < 0)
        return -1;
    printf("rm -rf %s\n", path);
    return 0;
}

Так что нормальные люди не используют strlcat, snprintf. Нормальные люди используют sprintf_s под управлением Microsoft (TM) (C) (Protected) (Patented) .NET CLI/C.

Исправление MOPKOBKA, :

Нормальные люди используют snprintf, а у него есть как минимум ошибка недостаточного размера буфера как раз.

Он не возвращает ошибку если буфер маленький, просто тихо обрезает, а потом злоумышленник может это использовать.

#include <stdio.h>

int main() {
    char path[5];
    if (snprintf(path, sizeof(path), "/usr/share/useless-program") < 0)
        return -1;
    printf("rm -rf %s\n", path);
    return 0;
}

Так что нормальные люди не используют strlcat, snprintf. Нормальные люди используют sprintf_s под управлением Microsoft (TM) (C) (Protected) (Patented) Managed C.

Исправление MOPKOBKA, :

Нормальные люди используют snprintf, а у него есть как минимум ошибка недостаточного размера буфера как раз.

Он не возвращает ошибку если буфер маленький, просто тихо обрезает, а потом злоумышленник может это использовать.

#include <stdio.h>

int main() {
    char path[5];
    if (snprintf(path, sizeof(path), "/usr/share/useless-program") < 0)
        return -1;
    printf("rm -rf %s\n", path);
    return 0;
}

Так что нормальные люди не используют strlcat, snprintf. Нормальные люди используют sprintf_s под управлением Managed C.

Исправление MOPKOBKA, :

Нормальные люди используют snprintf, а у него есть как минимум ошибка недостаточного размера буфера как раз.

Он не возвращает ошибку если буфер маленький, просто тихо обрезает, а потом злоумышленник может это использовать.

#include <stdio.h>

int main() {
    char path[5];
    if (snprintf(path, sizeof(path), "/usr/share/useless-program") < 0)
        return -1;
    printf("rm -rf %s\n", path);
    return 0;
}

Так что нормальные люди не используют strlcat, snprintf. Нормальные люди используют sprintf_s.

Исправление MOPKOBKA, :

Нормальные люди используют snprintf, а у него есть как минимум ошибка недостаточного размера буфера как раз.

Он не возвращает ошибку если буфер маленький, просто тихо обрезает, а потом злоумышленник может это использовать.

#include <stdio.h>

int main() {
    char path[5];
    if (snprintf(path, sizeof(path), "/usr/share/useless-program") < 0)
        return -1;
    printf("rm -rf %s\n", path);
    return 0;
}

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

Нормальные люди используют snprintf, а у него есть как минимум ошибка недостаточного размера буфера как раз.

Он не возвращает ошибку если буфер маленький, просто тихо обрезает, а потом злоумышленник может это использовать.