// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (C) 2018 Petr Vorel <pvorel@suse.cz> * Copyright (C) 2018 Michael Moese <mmoese@suse.de> * * cve-2018-1000001 realpath buffer underflow * Based on the reproducer posted upstream so other copyrights may apply. * Author: Dmitry V. Levin <ldv@altlinux.org> * LTP conversion from glibc source: Petr Vorel <pvorel@suse.cz> */ #include "tst_test.h" #include <errno.h> #include <stdlib.h> #define CHROOT_DIR "cve-2018-1000001" static void setup(void) { SAFE_MKDIR(CHROOT_DIR, 0755); SAFE_CHROOT(CHROOT_DIR); } static void run(void) { TESTPTR(realpath(".", NULL)); if (TST_ERR != ENOENT) { tst_res(TFAIL | TTERRNO, "returned unexpected errno"); } else if (TST_RET_PTR != NULL) { tst_res(TFAIL, "syscall didn't return NULL: '%s'", (char *)TST_RET_PTR); } else { tst_res(TPASS, "bug not reproduced"); } } static struct tst_test test = { .test_all = run, .setup = setup, .needs_root = 1, .needs_tmpdir = 1, };