==> Building on carkol ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/gnutls ./ .SRCINFO 1,268 100% 0.00kB/s 0:00:00 1,268 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=9/11) .nvchecker.toml 71 100% 69.34kB/s 0:00:00 71 100% 69.34kB/s 0:00:00 (xfr#2, to-chk=8/11) PKGBUILD 2,252 100% 2.15MB/s 0:00:00 2,252 100% 2.15MB/s 0:00:00 (xfr#3, to-chk=7/11) config 303 100% 295.90kB/s 0:00:00 303 100% 295.90kB/s 0:00:00 (xfr#4, to-chk=6/11) gnutls-3.8.9-1.log 607 100% 592.77kB/s 0:00:00 607 100% 592.77kB/s 0:00:00 (xfr#5, to-chk=5/11) gnutls-ktls_disable_keyupdate_test.patch 334 100% 326.17kB/s 0:00:00 334 100% 326.17kB/s 0:00:00 (xfr#6, to-chk=4/11) keys/ keys/pgp/ keys/pgp/462225C3B46F34879FC8496CD605848ED7E69871.asc 3,955 100% 3.77MB/s 0:00:00 3,955 100% 3.77MB/s 0:00:00 (xfr#7, to-chk=1/11) keys/pgp/5D46CB0F763405A7053556F47A75A648B3F9220C.asc 669 100% 653.32kB/s 0:00:00 669 100% 653.32kB/s 0:00:00 (xfr#8, to-chk=0/11) sent 6,768 bytes received 221 bytes 13,978.00 bytes/sec total size is 9,045 speedup is 1.29 ==> Ensuring required PGP keys are present...  -> Checking for 462225C3B46F34879FC8496CD605848ED7E69871... ==> Patching arch to riscv64... ==> Running pkgctl build --arch riscv64 --repo extra on remote host... ==> WARNING: unsupported architecture: riscv64 ==> Building gnutls  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building gnutls for [extra] (riscv64) ]2;🔵 Container arch-nspawn-636471 on carkol.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Package (5) Old Version New Version Net Change Download Size core/curl 8.11.1-3 8.12.0-3 0.04 MiB 1.17 MiB core/hwdata 0.391-1 0.392-1 0.04 MiB core/libtasn1 4.19.0-2 4.20.0-1 -0.18 MiB core/pam 1.7.0-1 1.7.0-2 -0.44 MiB 0.59 MiB core/sqlite 3.48.0-2 3.49.0-1 0.01 MiB Total Download Size: 1.76 MiB Total Installed Size: 29.41 MiB Net Upgrade Size: -0.52 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... curl-8.12.0-3-riscv64 downloading... pam-1.7.0-2-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... upgrading sqlite... upgrading pam... upgrading libtasn1... upgrading curl... upgrading hwdata... :: Running post-transaction hooks... (1/5) Reloading system manager configuration... Skipped: Current root is not booted. (2/5) Restarting marked services... Skipped: Current root is not booted. (3/5) Creating temporary files... (4/5) Arming ConditionNeedsUpdate... (5/5) Updating the info directory file... [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: gnutls 3.8.9-1 (Tue Feb 11 19:50:07 2025) ==> Retrieving sources...  -> Downloading gnutls-3.8.9.tar.xz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 6686k 0 8192 0 0 4998 0 0:22:50 0:00:01 0:22:49 4998 1 6686k 1 124k 0 0 49391 0 0:02:18 0:00:02 0:02:16 49387 12 6686k 12 840k 0 0 238k 0 0:00:28 0:00:03 0:00:25 238k 87 6686k 87 5828k 0 0 1290k 0 0:00:05 0:00:04 0:00:01 1290k 100 6686k 100 6686k 0 0 1453k 0 0:00:04 0:00:04 --:--:-- 1663k  -> Downloading gnutls-3.8.9.tar.xz.sig... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 566 100 566 0 0 458 0 0:00:01 0:00:01 --:--:-- 459  -> Found config  -> Found gnutls-ktls_disable_keyupdate_test.patch ==> Validating source files with sha256sums... gnutls-3.8.9.tar.xz ... Passed gnutls-3.8.9.tar.xz.sig ... Skipped config ... Passed gnutls-ktls_disable_keyupdate_test.patch ... Passed ==> Verifying source file signatures with gpg... gnutls-3.8.9.tar.xz ... Passed ]2;🔵 Container arch-nspawn-637982 on carkol.felixc.at\==> Making package: gnutls 3.8.9-1 (Tue Feb 11 19:50:54 2025) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (1) New Version Net Change Download Size core/leancrypto 1.2.0-2 2.29 MiB 0.66 MiB Total Download Size: 0.66 MiB Total Installed Size: 2.29 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... leancrypto-1.2.0-2-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing leancrypto... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (10) New Version Net Change Download Size extra/docbook-xml 4.5-10 1.96 MiB extra/docbook-xsl 1.79.2-9 26.32 MiB core/efivar 39-1 0.47 MiB 0.14 MiB core/glib2-docs 2.82.4-2 65.98 MiB 4.26 MiB extra/libxslt 1.1.42-2 0.77 MiB extra/python-lxml 5.3.0-2 4.52 MiB 1.33 MiB extra/python-pygments 2.19.1-1 14.39 MiB 2.34 MiB extra/gtk-doc 1.34.0-3 3.09 MiB 0.30 MiB core/net-tools 2.10-3 0.46 MiB 0.14 MiB extra/tpm2-tools 5.7-1 1.45 MiB 0.72 MiB Total Download Size: 9.24 MiB Total Installed Size: 119.43 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... glib2-docs-2.82.4-2-riscv64 downloading... python-pygments-2.19.1-1-any downloading... python-lxml-5.3.0-2-riscv64 downloading... tpm2-tools-5.7-1-riscv64 downloading... gtk-doc-1.34.0-3-any downloading... net-tools-2.10-3-riscv64 downloading... efivar-39-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing docbook-xml... installing libxslt... Optional dependencies for libxslt python: Python bindings [installed] installing docbook-xsl... installing glib2-docs... installing python-lxml... Optional dependencies for python-lxml python-beautifulsoup4: support for beautifulsoup parser to parse not well formed HTML python-cssselect: support for cssselect python-html5lib: support for html5lib parser python-lxml-docs: offline docs python-lxml-html-clean: enable htmlclean feature installing python-pygments... installing gtk-doc... Optional dependencies for gtk-doc dblatex: PDF support installing net-tools... installing efivar... installing tpm2-tools... Optional dependencies for tpm2-tools tpm2-abrmd: user space resource manager :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Retrieving sources...  -> Found gnutls-3.8.9.tar.xz  -> Found gnutls-3.8.9.tar.xz.sig  -> Found config  -> Found gnutls-ktls_disable_keyupdate_test.patch ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting gnutls-3.8.9.tar.xz with bsdtar ==> Starting prepare()... patching file tests/Makefile.am Hunk #1 succeeded at 520 (offset 16 lines). autoreconf: export WARNINGS= autoreconf: Entering directory '.' autoreconf: running: autopoint --force autopoint: using AM_GNU_GETTEXT_REQUIRE_VERSION instead of AM_GNU_GETTEXT_VERSION Copying file build-aux/config.rpath Copying file m4/build-to-host.m4 Copying file m4/gettext.m4 Copying file m4/host-cpu-c-abi.m4 Copying file m4/iconv.m4 Copying file m4/intlmacosx.m4 Copying file m4/lib-ld.m4 Copying file m4/lib-link.m4 Copying file m4/lib-prefix.m4 Copying file m4/nls.m4 Copying file m4/po.m4 Copying file m4/progtest.m4 Copying file po/Makefile.in.in Copying file po/Makevars.template Copying file po/Rules-quot Copying file po/boldquot.sed Copying file po/en@boldquot.header Copying file po/en@quot.header Copying file po/insert-header.sed Copying file po/quot.sed Copying file po/remove-potcdate.sed autoreconf: running: aclocal --force -I m4 -I src/gl/m4 -I lib/unistring/m4 --install aclocal: overwriting 'm4/libtool.m4' with '/usr/share/aclocal/libtool.m4' aclocal: overwriting 'm4/ltoptions.m4' with '/usr/share/aclocal/ltoptions.m4' aclocal: overwriting 'm4/ltversion.m4' with '/usr/share/aclocal/ltversion.m4' autoreconf: configure.ac: tracing autoreconf: running: libtoolize --copy --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'. libtoolize: copying file 'build-aux/ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' autoreconf: configure.ac: not using Intltool autoreconf: running: gtkdocize --copy autoreconf: running: aclocal --force -I m4 -I src/gl/m4 -I lib/unistring/m4 --install autoreconf: running: /usr/bin/autoconf --force autoreconf: running: /usr/bin/autoheader --force autoreconf: running: automake --add-missing --copy --force-missing configure.ac:39: installing 'build-aux/compile' configure.ac:29: installing 'build-aux/missing' aminclude_static.am:52: warning: if $(CODE_COVERAGE_BRANCH_COVERAGE: non-POSIX variable name aminclude_static.am:52: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:59: warning: if $(CODE_COVERAGE_BRANCH_COVERAGE: non-POSIX variable name aminclude_static.am:59: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:63: warning: ':='-style assignments are not portable Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:64: warning: code_coverage_v_lcov_cap_$(V: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:65: warning: code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:67: warning: code_coverage_v_lcov_ign_$(V: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:68: warning: code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:70: warning: code_coverage_v_genhtml_$(V: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:71: warning: code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:73: warning: code_coverage_quiet_$(V: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:74: warning: code_coverage_quiet_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:78: warning: subst -,_,$(subst .,_,$(1: non-POSIX variable name aminclude_static.am:78: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:87: warning: addprefix --directory ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:87: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:87: warning: call code_coverage_sanitize,$(PACKAGE_NAME: non-POSIX variable name aminclude_static.am:87: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:88: warning: addprefix --directory ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:88: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:90: warning: addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:90: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:100: warning: ':='-style assignments are not portable Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:100: warning: AM_DISTCHECK_CONFIGURE_FLAGS was already defined in condition TRUE, which includes condition CODE_COVERAGE_ENABLED ... Makefile.am:167: 'aminclude_static.am' included from here Makefile.am:21: ... 'AM_DISTCHECK_CONFIGURE_FLAGS' previously defined here doc/Makefile.am: installing 'build-aux/depcomp' autoreconf: Leaving directory '.' ==> Starting build()... checking build system type... riscv64-unknown-linux-gnu checking host system type... riscv64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking xargs -n works... yes *** *** Checking for compilation programs... checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking whether the compiler is clang... no checking for compiler option needed when checking for declarations... none checking whether make supports the include directive... yes (GNU style) checking dependency style of gcc... gcc3 checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for wchar.h... yes checking for minix/config.h... no checking for sys/socket.h... yes checking for arpa/inet.h... yes checking for features.h... yes checking for stdbool.h... yes checking for byteswap.h... yes checking for sys/param.h... yes checking for sys/time.h... yes checking for netdb.h... yes checking for netinet/in.h... yes checking for limits.h... yes checking for threads.h... yes checking for sys/mman.h... yes checking for pthread.h... yes checking for stdckdint.h... yes checking for sys/uio.h... yes checking for crtdefs.h... no checking for error.h... yes checking for stdio_ext.h... yes checking for termios.h... yes checking for sys/select.h... yes checking for endian.h... yes checking for sys/endian.h... no checking for langinfo.h... yes checking for xlocale.h... no checking for semaphore.h... yes checking for math.h... yes checking for sys/wait.h... yes checking for sys/ioctl.h... yes checking for sys/un.h... yes checking whether it is safe to define __EXTENSIONS__... yes checking whether _XOPEN_SOURCE should be defined... no checking how to run the C preprocessor... gcc -E checking for egrep -e... /usr/bin/grep -E checking for Minix Amsterdam compiler... no checking for ar... ar checking the archiver (ar) interface... ar checking for ar... (cached) ar checking for ranlib... ranlib checking for gcc option to support large files... none needed checking dependency style of gcc... gcc3 checking the archiver (ar) interface... (cached) ar checking for g++... g++ checking whether the compiler supports GNU C++... yes checking whether g++ accepts -g... yes checking for g++ option to enable C++11 features... none needed checking dependency style of g++... gcc3 checking for bison... bison -y checking for a sed that does not truncate output... /usr/bin/sed checking whether to build with code coverage support... no checking whether to enable maintainer-specific portions of Makefiles... yes checking for faketime... no checking for datefudge... no checking whether faketime program works... 1739303963 no checking for inline... inline checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for __get_cpuid_count... no checking for struct iovec.iov_base... yes checking for netinet/tcp.h... yes checking for stdatomic.h... yes checking for library containing __atomic_load_4... -latomic checking for threads.h... (cached) yes checking for sanitizer/asan_interface.h... yes checking for valgrind/memcheck.h... no checking for getrandom... yes checking for KERN_ARND... no checking for getentropy... no checking for nettle >= 3.6... yes checking for hogweed >= 3.6 ... yes checking for __gmpz_cmp in -lgmp... yes checking for libtasn1 >= 4.9... yes checking whether to use the included minitasn1... no checking whether to disable strict DER time encodings for backwards compatibility... no checking whether to allow SHA1 as an acceptable hash for cert digital signatures... yes checking whether to disable the SSL 3.0 protocol... yes checking whether to disable the SSL 2.0 client hello... no checking whether to disable DTLS-SRTP extension... no checking whether to disable ALPN extension... no checking whether to enable TLS heartbeat support... no checking whether to enable SRP authentication support... no checking whether to disable PSK authentication support... no checking whether to disable anonymous authentication support... no checking whether to disable DHE support... no checking whether to disable ECDHE support... no checking whether to disable GOST support... no checking whether to add cryptodev support... no checking whether to add AF_ALG support... no checking whether to add KTLS support... yes checking whether KTLS is supported by the OS... checking for linux/tls.h... yes checking whether to disable OCSP support... no checking size of void *... 8 checking size of long long... 8 checking size of long... 8 checking size of int... 4 checking for library containing setsockopt... none needed checking whether to build OpenSSL compatibility layer... yes checking for gtk-doc... yes checking for gtkdoc-check... gtkdoc-check.test checking for gtkdoc-check... /usr/bin/gtkdoc-check checking for gtkdoc-rebase... /usr/bin/gtkdoc-rebase checking for gtkdoc-mkpdf... /usr/bin/gtkdoc-mkpdf checking whether to build gtk-doc documentation... no checking for glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0... yes checking whether NLS is requested... yes checking for msgfmt... /usr/bin/msgfmt checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext... /usr/bin/xgettext checking for msgmerge... /usr/bin/msgmerge checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for shared library run path origin... done checking 32-bit host C ABI... no checking for ELF binary format... yes checking for the common suffixes of directories in the library search path... lib,lib,lib checking for CFPreferencesCopyAppValue... no checking for CFLocaleCopyPreferredLanguages... no checking for GNU gettext in libc... yes checking whether to use NLS... yes checking where the gettext function comes from... libc checking whether byte ordering is bigendian... no checking for fork... yes checking for setitimer... yes checking for getrusage... yes checking for getpwuid_r... yes checking for nanosleep... yes checking for daemon... yes checking for getpid... yes checking for localtime... yes checking for mmap... yes checking for clock_gettime... yes checking for fmemopen... yes checking for __register_atfork... yes checking for secure_getenv... yes checking for getauxval... yes checking for elf_aux_info... no checking for libseccomp... yes checking how to link with libseccomp... /usr/lib/libseccomp.so checking for libcrypto... yes checking how to link with libcrypto... /usr/lib/libcrypto.so od: cannot skip past end of combined input checking for librt... yes checking how to link with librt... -lrt checking for pthread_mutex_lock... yes checking for library containing u8_normalize... -lunistring checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking whether the preprocessor supports include_next... yes checking whether source code line length is unlimited... yes checking whether malloc is ptrdiff_t safe... yes checking whether malloc, realloc, calloc set errno on failure... yes checking whether lstat correctly handles trailing slash... yes checking for canonicalize_file_name... yes checking for realpath... yes checking for lstat... yes checking for _set_invalid_parameter_handler... no checking for explicit_bzero... yes checking for fcntl... yes checking for symlink... yes checking for getdtablesize... yes checking for gettimeofday... yes checking for mbsinit... yes checking for mbrtowc... yes checking for mprotect... yes checking for memset_s... no checking for readlink... yes checking for secure_getenv... (cached) yes checking for getuid... yes checking for geteuid... yes checking for getgid... yes checking for getegid... yes checking for snprintf... yes checking for strndup... yes checking for localtime_r... yes checking for vasnprintf... no checking for getpass... yes checking for getexecname... no checking for setenv... yes checking for __xpg_strerror_r... yes checking for isblank... yes checking for pipe... yes checking for pselect... yes checking for pthread_sigmask... yes checking for sleep... yes checking for shutdown... yes checking for usleep... yes checking for mquery... no checking for pstat_getprocvm... no checking for gcc options needed to detect all undeclared functions... none needed checking whether // is distinct from /... no checking whether realpath works... yes checking for faccessat... yes checking for getcwd... yes checking for complete errno.h... yes checking whether ctype.h defines __header_inline... no checking for working fcntl.h... yes checking for pid_t... yes checking for mode_t... yes checking whether byte ordering is bigendian... (cached) no checking whether fopen recognizes a trailing slash... yes checking whether fflush works on input streams... no checking whether stat file-mode macros are broken... no checking for C/C++ restrict keyword... __restrict__ checking for nlink_t... yes checking whether stdin defaults to large file offsets... yes checking for off64_t... yes checking whether ftello is declared... yes checking whether ungetc works on arbitrary bytes... yes checking for ftello... yes checking whether ftello works... yes checking whether getdelim is declared... yes checking whether getdtablesize is declared... yes checking whether getline is declared... yes checking for struct timeval... yes checking for wide-enough struct timeval.tv_sec member... yes checking whether is self-contained... yes checking for shutdown... (cached) yes checking whether defines the SHUT_* macros... yes checking for struct sockaddr_storage... yes checking for sa_family_t... yes checking for struct sockaddr_storage.ss_family... yes checking for IPv4 sockets... yes checking for IPv6 sockets... yes checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... yes checking whether limits.h has SSIZE_MAX... yes checking for wint_t... yes checking whether wint_t is large enough... yes checking whether the compiler produces multi-arch binaries... no checking whether stdint.h conforms to C99... yes checking whether stdint.h works without ISO C predefines... yes checking whether stdint.h has UINTMAX_WIDTH etc.... yes checking whether imported symbols can be declared weak... yes checking for pthread.h... (cached) yes checking for pthread_kill in -lpthread... yes checking whether POSIX threads API is available... yes checking for multithread API to use... posix checking whether malloc (0) returns nonnull... yes checking for mbstate_t... yes checking for nl_langinfo and CODESET... yes checking for a traditional japanese locale... none checking for an english Unicode locale... en_US.UTF-8 checking for a transitional chinese locale... none checking whether mbrtowc handles incomplete characters... yes checking whether mbrtowc works as well as mbtowc... guessing yes checking for mmap... (cached) yes checking for MAP_ANONYMOUS... yes checking whether memchr works... yes checking whether memmem is declared... yes checking whether defines MIN and MAX... no checking whether defines MIN and MAX... yes checking for O_CLOEXEC... yes checking for promoted mode_t type... mode_t checking for pthread_t... yes checking for pthread_spinlock_t... yes checking for pthread_spin_init... yes checking whether realloc should abort upon undefined behaviour... no checking for glibc-compatible sys/cdefs.h... yes checking for sched.h... yes checking for struct sched_param... yes checking whether snprintf returns a byte count as in C99... yes checking whether printf supports POSIX/XSI format strings with positions... yes checking whether snprintf is declared... yes checking for good max_align_t... yes checking whether NULL can be used in arbitrary expressions... yes checking for unreachable... no checking whether nullptr_t needs ... no checking for clean definition of __STDC_VERSION_STDDEF_H__... yes checking whether fcloseall is declared... yes checking whether getw is declared... yes checking whether putw is declared... yes checking which flavor of printf attribute matches inttypes macros... system checking whether ecvt is declared... yes checking whether fcvt is declared... yes checking whether gcvt is declared... yes checking whether MB_CUR_MAX is correct... yes checking whether strdup is declared... yes checking whether strndup is declared... yes checking whether strnlen is declared... yes checking whether strtok_r is declared... yes checking for struct timespec in ... yes checking for TIME_UTC in ... yes checking whether execvpe is declared... yes checking for inttypes.h... yes checking for stdint.h... yes checking for intmax_t... yes checking whether snprintf truncates the result as in C99... yes checking where to find the exponent in a 'double'... word 1 bit 20 checking for wcslen... yes checking for snprintf... (cached) yes checking for strnlen... yes checking for wcrtomb... yes checking whether _snprintf is declared... no checking whether vsnprintf is declared... yes checking whether uses 'inline' correctly... yes checking whether wcsdup is declared... yes checking for C compiler option to allow warnings... -Wno-error checking for alignas and alignof... yes, macros checking for alloca as a compiler built-in... yes checking for static_assert... yes, an macro checking for bool, true, false... no checking for __builtin_expect... yes checking for working bswap_16, bswap_32, bswap_64... yes checking whether // is distinct from /... (cached) no checking whether dup2 works... yes checking whether fcntl handles F_DUPFD correctly... yes checking whether fcntl understands F_DUPFD_CLOEXEC... needs runtime check checking whether float.h conforms to ISO C23... no checking whether conversion from 'int' to 'long double' works... yes checking whether fopen supports the mode character 'x'... yes checking whether fopen supports the mode character 'e'... yes checking whether free is known to preserve errno... yes checking for ftello... (cached) yes checking whether ftello works... (cached) yes checking whether __func__ is available... yes checking for getdelim... yes checking for working getdelim function... yes checking whether getdtablesize works... yes checking for getline... yes checking for working getline function... yes checking for gettimeofday with POSIX signature... yes checking for library containing inet_ntop... none required checking whether inet_ntop is declared... yes checking for library containing inet_pton... none required checking whether inet_pton is declared... yes checking for objdump... objdump checking if gcc/ld supports -Wl,--output-def... no checking if LD -Wl,--version-script works... yes checking whether the compiler supports the __inline keyword... yes checking for pthread_rwlock_t... yes checking whether pthread_rwlock_rdlock prefers a writer to a reader... no checking whether lseek detects pipes... yes checking whether SEEK_DATA works but is incompatible with GNU... no checking for memmem... yes checking whether memmem works... yes checking for mempcpy... yes checking for memset_explicit... no checking for explicit_memset... no checking whether is self-contained... yes checking whether open recognizes a trailing slash... yes checking for pmccabe... false checking for PTHREAD_CREATE_DETACHED... yes checking for PTHREAD_MUTEX_RECURSIVE... yes checking for PTHREAD_MUTEX_ROBUST... yes checking for PTHREAD_PROCESS_SHARED... yes checking whether pthread_once works... yes checking for rawmemchr... yes checking whether readlink signature is correct... yes checking whether readlink handles trailing slash correctly... yes checking whether readlink truncates results correctly... yes checking whether realloc (..., 0) returns nonnull... no checking for stdint.h... (cached) yes checking for SIZE_MAX... yes checking for snprintf... (cached) yes checking whether snprintf respects a size of 1... yes checking for socklen_t... yes checking for ssize_t... yes checking whether stat handles trailing slashes on files... yes checking for struct stat.st_atim.tv_nsec... yes checking whether struct stat.st_atim is of type struct timespec... yes checking for struct stat.st_birthtimespec.tv_nsec... no checking for struct stat.st_birthtimensec... no checking for struct stat.st_birthtim.tv_nsec... no checking for stpcpy... yes checking for strcasecmp... yes checking for strncasecmp... yes checking whether strncasecmp is declared... yes checking for working strndup... yes checking for working strnlen... yes checking for strtok_r... yes checking whether strtok_r works... yes checking for strverscmp... yes checking whether strverscmp works... yes checking whether localtime_r is declared... yes checking whether localtime_r is compatible with its POSIX signature... yes checking for variable-length arrays... yes checking for ptrdiff_t... yes checking for vasprintf... yes checking for vsnprintf... yes checking whether snprintf respects a size of 1... (cached) yes checking for stdint.h... (cached) yes checking if environ is properly declared... yes checking for error... yes checking whether error_at_line is declared... yes checking for error_at_line... yes checking for working error function... yes checking whether strerror_r is declared... yes checking whether strerror_r returns char *... yes checking whether fseeko is declared... yes checking for fseeko... yes checking whether fflush works on input streams... (cached) no checking for library containing gethostbyname... none required checking for gethostbyname... yes checking for library containing getservbyname... none required checking for getservbyname... yes checking whether fflush_unlocked is declared... yes checking whether flockfile is declared... yes checking whether fputs_unlocked is declared... yes checking whether funlockfile is declared... yes checking whether putc_unlocked is declared... yes checking whether timespec_get is declared... yes checking for timespec_get... yes checking whether INT32_MAX < INTMAX_MAX... yes checking whether INT64_MAX == LONG_MAX... yes checking whether UINT32_MAX < UINTMAX_MAX... yes checking whether UINT64_MAX == ULONG_MAX... yes checking whether time_t is signed... yes checking whether alarm is declared... yes checking for working mktime... yes checking for compound literals... yes checking for struct tm.tm_gmtoff... yes checking for struct tm.tm_zone... yes checking whether is self-contained... yes checking whether setenv is declared... yes checking whether _putenv is declared... no checking for search.h... yes checking for tsearch... yes checking for sigset_t... yes checking for uid_t... yes checking for gid_t... yes checking for volatile sig_atomic_t... yes checking for sighandler_t... yes checking whether strerror(0) succeeds... yes checking for strerror_r... yes checking for strerror_r with POSIX signature... no checking whether __xpg_strerror_r works... yes checking whether unsetenv is declared... yes checking for C++ compiler option to allow warnings... -Wno-error checking for a traditional french locale... none checking for a turkish Unicode locale... none checking if endian.h defines stdint types... no checking if endian.h defines functions and macros... yes checking whether getcwd (NULL, 0) allocates memory for result... yes checking for getcwd with POSIX signature... yes checking for off_t... yes checking where to find the exponent in a 'float'... word 0 bit 23 checking whether long double and double are the same... no checking where to find the exponent in a 'long double'... word 3 bit 16 checking whether langinfo.h defines CODESET... yes checking whether langinfo.h defines T_FMT_AMPM... yes checking whether langinfo.h defines ALTMON_1... yes checking whether langinfo.h defines ERA... yes checking whether langinfo.h defines YESEXPR... yes checking whether locale.h defines locale_t... yes checking whether locale.h conforms to POSIX:2001... yes checking whether struct lconv is properly defined... yes checking for LC_MESSAGES... yes checking for uselocale... yes checking whether uselocale works... yes checking for fake locale system (OpenBSD)... no checking for Solaris 11.4 locale system... no checking for getlocalename_l... no checking for library needed for semaphore functions... none checking whether NAN macro works... yes checking whether HUGE_VAL works... yes checking whether initstate is declared... yes checking whether setstate is declared... yes checking whether setlocale (LC_ALL, NULL) is multithread-safe... yes checking whether setlocale (category, NULL) is multithread-safe... yes checking for a french Unicode locale... none checking whether declares ioctl... yes checking for alignas and alignof... (cached) yes, macros checking for alloca as a compiler built-in... (cached) yes checking for static_assert... (cached) yes, an macro checking for bool, true, false... (cached) no checking for __builtin_expect... (cached) yes checking for working bswap_16, bswap_32, bswap_64... (cached) yes checking whether calloc (0, n) and calloc (n, 0) return nonnull... yes checking for library containing clock_gettime... none required checking for clock_getres... yes checking for clock_gettime... yes checking for clock_settime... yes checking whether // is distinct from /... (cached) no checking whether dup2 works... (cached) yes checking whether fcntl handles F_DUPFD correctly... (cached) yes checking whether fcntl understands F_DUPFD_CLOEXEC... (cached) needs runtime check checking for flexible array member... yes checking whether float.h conforms to ISO C23... (cached) no checking whether conversion from 'int' to 'long double' works... (cached) yes checking whether fopen supports the mode character 'x'... (cached) yes checking whether fopen supports the mode character 'e'... (cached) yes checking for __fpending... yes checking whether __fpending is declared... yes checking whether free is known to preserve errno... (cached) yes checking for fseeko... (cached) yes checking whether fflush works on input streams... (cached) no checking for _fseeki64... no checking for ftello... (cached) yes checking whether ftello works... (cached) yes checking whether __func__ is available... (cached) yes checking for library containing getaddrinfo... none required checking for getaddrinfo... yes checking whether gai_strerror is declared... yes checking whether gai_strerrorA is declared... no checking for gai_strerror with POSIX signature... yes checking for struct sockaddr.sa_len... no checking whether getaddrinfo is declared... yes checking whether freeaddrinfo is declared... yes checking whether getnameinfo is declared... yes checking for struct addrinfo... yes checking for getdelim... (cached) yes checking for working getdelim function... (cached) yes checking whether getdtablesize works... (cached) yes checking for getline... (cached) yes checking for working getline function... (cached) yes checking for getprogname... no checking whether program_invocation_name is declared... yes checking whether program_invocation_name is declared... (cached) yes checking whether program_invocation_short_name is declared... yes checking whether __argv is declared... no checking for gettimeofday with POSIX signature... (cached) yes checking for library containing gethostbyname... (cached) none required checking for gethostbyname... (cached) yes checking for library containing inet_ntop... (cached) none required checking whether inet_ntop is declared... (cached) yes checking for library containing inet_pton... (cached) none required checking whether inet_pton is declared... (cached) yes checking whether the compiler supports the __inline keyword... (cached) yes checking for pthread_rwlock_t... (cached) yes checking whether pthread_rwlock_rdlock prefers a writer to a reader... (cached) no checking whether lseek detects pipes... (cached) yes checking whether SEEK_DATA works but is incompatible with GNU... (cached) no checking for memmem... (cached) yes checking whether memmem works... (cached) yes checking for mempcpy... (cached) yes checking for memset_explicit... (cached) no checking for explicit_memset... (cached) no checking for __mktime_internal... no checking whether is self-contained... (cached) yes checking whether open recognizes a trailing slash... (cached) yes checking for bison... bison checking for bison 2.4 or newer... 3.8.2, ok checking whether program_invocation_name is declared... (cached) yes checking whether program_invocation_short_name is declared... (cached) yes checking for PTHREAD_CREATE_DETACHED... (cached) yes checking for PTHREAD_MUTEX_RECURSIVE... (cached) yes checking for PTHREAD_MUTEX_ROBUST... (cached) yes checking for PTHREAD_PROCESS_SHARED... (cached) yes checking whether pthread_once works... (cached) yes checking for rawmemchr... (cached) yes checking whether readlink signature is correct... (cached) yes checking whether readlink handles trailing slash correctly... (cached) yes checking whether readlink truncates results correctly... (cached) yes checking whether realloc (..., 0) returns nonnull... (cached) no checking for reallocarray... yes checking whether select supports a 0 argument... yes checking whether select detects invalid fds... yes checking for library containing getservbyname... (cached) none required checking for getservbyname... (cached) yes checking whether setenv validates arguments... yes checking for stdint.h... (cached) yes checking for SIZE_MAX... (cached) yes checking for snprintf... (cached) yes checking whether snprintf respects a size of 1... (cached) yes checking for socklen_t... (cached) yes checking for ssize_t... (cached) yes checking whether stat handles trailing slashes on files... (cached) yes checking for struct stat.st_atim.tv_nsec... (cached) yes checking whether struct stat.st_atim is of type struct timespec... (cached) yes checking for struct stat.st_birthtimespec.tv_nsec... (cached) no checking for struct stat.st_birthtimensec... (cached) no checking for struct stat.st_birthtim.tv_nsec... (cached) no checking for stpcpy... (cached) yes checking for strcasecmp... (cached) yes checking for strncasecmp... (cached) yes checking whether strncasecmp is declared... (cached) yes checking for working strerror function... yes checking for working strndup... (cached) yes checking for working strnlen... (cached) yes checking for strtok_r... (cached) yes checking whether strtok_r works... (cached) yes checking for strverscmp... (cached) yes checking whether strverscmp works... (cached) yes checking whether localtime_r is declared... (cached) yes checking whether localtime_r is compatible with its POSIX signature... (cached) yes checking whether localtime works even near extrema... yes checking for timezone_t... no checking for tzalloc... no checking for timegm... yes checking for unsetenv... yes checking for unsetenv() return type... int checking whether unsetenv obeys POSIX... yes checking for variable-length arrays... (cached) yes checking for ptrdiff_t... (cached) yes checking for vasprintf... (cached) yes checking for vsnprintf... (cached) yes checking whether snprintf respects a size of 1... (cached) yes checking for stdint.h... (cached) yes checking whether fdopen sets errno... yes checking for ftruncate... yes checking for getpagesize... yes checking whether getpagesize is declared... yes checking whether htons is declared... yes checking whether htonl is declared... yes checking whether ntohs is declared... yes checking whether ntohl is declared... yes checking whether byte ordering is bigendian... (cached) no checking whether byte ordering is bigendian... (cached) no checking for ioctl... yes checking for ioctl with POSIX signature... no checking whether isnan(double) can be used without linking with libm... yes checking whether isnan(float) can be used without linking with libm... yes checking whether isnan(float) works... yes checking whether isnan(long double) can be used without linking with libm... yes checking whether isnanl works... yes checking for newlocale... yes checking for newlocale... (cached) yes checking for newlocale... (cached) yes checking for duplocale... yes checking for freelocale... yes checking for library containing nanosleep... none required checking for working nanosleep... no (mishandles large arguments) checking whether perror matches strerror... yes checking whether signature of pselect conforms to POSIX... yes checking whether pselect detects invalid fds... yes checking for pthread_mutexattr_getrobust... yes checking for pthread_rwlock_init... yes checking whether pthread_rwlock_timedrdlock is declared... yes checking for reasonable pthread_rwlock wait queue handling... no checking whether pthread_create exists as a global function... yes checking whether pthread_mutex_timedlock is declared... yes checking for pthread_mutex_timedlock... yes checking whether pthread_sigmask is a macro... no checking whether pthread_sigmask works without -lpthread... yes checking whether pthread_sigmask returns error numbers... yes checking whether pthread_sigmask unblocks signals correctly... guessing yes checking for putenv compatible with GNU and SVID... yes checking for raise... yes checking for sigprocmask... yes checking for random... yes checking for initstate... yes checking for setstate... yes checking for random.h... no checking for struct random_data... yes checking for random_r... yes checking whether sched_yield is declared... yes checking whether setlocale supports the C locale... yes checking whether setlocale (LC_ALL, NULL) is multithread-safe... (cached) yes checking whether setlocale (category, NULL) is multithread-safe... (cached) yes checking for signbit macro... yes checking for signbit compiler built-ins... yes checking for sigprocmask... (cached) yes checking whether sleep is declared... yes checking for working sleep... yes checking for catgets... yes checking whether symlink handles trailing slash correctly... yes checking for IPv4 sockets... (cached) yes checking for IPv6 sockets... (cached) yes checking for UNIX domain sockets... yes checking for pthread_atfork... yes checking for sys/single_threaded.h... yes checking whether time() works... guessing no checking for struct tm.tm_gmtoff... (cached) yes checking for struct tm.tm_zone... (cached) yes checking for useconds_t... yes checking whether usleep allows large arguments... yes checking for bool, true, false... (cached) no checking whether the compiler generally respects inline... yes checking for ssize_t... (cached) yes checking for libev... no checking whether C compiler handles -Werror -Wunknown-warning-option... no checking whether C compiler handles -Wtype-limits... yes checking whether -Wno-missing-field-initializers is needed... no checking whether -Wuninitialized is supported... yes checking whether C compiler handles -fanalyzer... yes checking whether C compiler handles -fstrict-flex-arrays... yes checking whether C compiler handles -Wall... yes checking whether C compiler handles -Wbad-function-cast... yes checking whether C compiler handles -Wcast-align=strict... yes checking whether C compiler handles -Wdate-time... yes checking whether C compiler handles -Wdisabled-optimization... yes checking whether C compiler handles -Wdouble-promotion... yes checking whether C compiler handles -Wduplicated-branches... yes checking whether C compiler handles -Wduplicated-cond... yes checking whether C compiler handles -Wextra... yes checking whether C compiler handles -Wflex-array-member-not-at-end... yes checking whether C compiler handles -Winit-self... yes checking whether C compiler handles -Winvalid-pch... yes checking whether C compiler handles -Wlogical-op... yes checking whether C compiler handles -Wmissing-declarations... yes checking whether C compiler handles -Wmissing-include-dirs... yes checking whether C compiler handles -Wmissing-prototypes... yes checking whether C compiler handles -Wnested-externs... yes checking whether C compiler handles -Wnull-dereference... yes checking whether C compiler handles -Wold-style-definition... yes checking whether C compiler handles -Wopenmp-simd... yes checking whether C compiler handles -Wpacked... yes checking whether C compiler handles -Wpointer-arith... yes checking whether C compiler handles -Wshadow... yes checking whether C compiler handles -Wstrict-flex-arrays... yes checking whether C compiler handles -Wstrict-prototypes... yes checking whether C compiler handles -Wsuggest-attribute=cold... yes checking whether C compiler handles -Wsuggest-attribute=format... yes checking whether C compiler handles -Wsuggest-attribute=malloc... yes checking whether C compiler handles -Wsuggest-final-methods... yes checking whether C compiler handles -Wsuggest-final-types... yes checking whether C compiler handles -Wsync-nand... yes checking whether C compiler handles -Wtrampolines... yes checking whether C compiler handles -Wuninitialized... yes checking whether C compiler handles -Wunknown-pragmas... yes checking whether C compiler handles -Wunused-macros... yes checking whether C compiler handles -Wvariadic-macros... yes checking whether C compiler handles -Wvector-operation-performance... yes checking whether C compiler handles -Wwrite-strings... yes checking whether C compiler handles -Warray-bounds=2... yes checking whether C compiler handles -Wattribute-alias=2... yes checking whether C compiler handles -Wbidi-chars=any,ucn... yes checking whether C compiler handles -Wformat-overflow=2... yes checking whether C compiler handles -Wformat=2... yes checking whether C compiler handles -Wformat-truncation=2... yes checking whether C compiler handles -Wimplicit-fallthrough=5... yes checking whether C compiler handles -Wshift-overflow=2... yes checking whether C compiler handles -Wuse-after-free=3... yes checking whether C compiler handles -Wunused-const-variable=2... yes checking whether C compiler handles -Wvla-larger-than=4031... yes checking whether C compiler handles -Wthread-safety... no checking whether C compiler handles -Wno-analyzer-malloc-leak... yes checking whether C compiler handles -Wno-missing-field-initializers... yes checking whether C compiler handles -Wno-unused-parameter... yes checking whether C compiler handles -Wno-format-truncation... yes checking whether C compiler handles -Wimplicit-fallthrough=2... yes checking whether C compiler handles -Wabi=11... yes checking whether C compiler handles -fdiagnostics-show-option... yes checking whether C compiler handles -fno-builtin-strcmp... yes checking whether ln -s works... yes checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking the maximum length of command line arguments... 1572864 checking how to convert riscv64-unknown-linux-gnu file names to riscv64-unknown-linux-gnu format... func_convert_file_noop checking how to convert riscv64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... (cached) objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC -DPIC checking if g++ PIC flag -fPIC -DPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate od: cannot skip past end of combined input checking for libdl... yes checking how to link with libdl... -ldl checking for cmocka >= 1.0.1... no checking for libidn2 >= 2.0.0... yes checking for nettle_get_secp_192r1 in -lhogweed... yes checking for nettle_rsa_sec_decrypt... yes checking for nettle_gost28147_set_key... no checking for nettle_streebog512_update... yes checking for nettle_magma_set_key... no checking for nettle_kuznyechik_set_key... no checking for nettle_cmac_magma_update... no checking for nettle_cmac_kuznyechik_update... no checking for nettle_siv_gcm_encrypt_message... yes checking for nettle_rsa_oaep_sha256_encrypt... yes checking for nettle_cbc_aes128_encrypt... yes checking for nettle_sha3_128_shake_output... yes checking gmp soname... libgmp.so.10 checking nettle soname... libnettle.so.8 checking hogweed soname... libhogweed.so.6 checking whether to build libdane... yes checking for unbound library... no configure: WARNING: *** *** libunbound was not found. Libdane will not be built. *** checking for p11-kit-1 >= 0.23.1... yes checking m soname... checking whether dlopen works with SONAME... yes checking for tss2-esys... yes checking for tss2-mu... yes checking for tss2-tctildr... yes checking tss2-esys soname... libtss2-esys.so.0 checking tss2-mu soname... libtss2-mu.so.0 checking tss2-tctildr soname... libtss2-tctildr.so.0 checking for tss library... no configure: WARNING: *** *** trousers was not found. TPM support will be disabled. *** checking size of unsigned long int... 8 checking size of unsigned int... 4 checking size of time_t... 8 checking for zlib... yes checking z soname... libz.so.1 checking for libbrotlienc >= 1.0.0... yes checking for libbrotlidec >= 1.0.0... yes checking brotlienc soname... libbrotlienc.so.1 checking brotlidec soname... libbrotlidec.so.1 checking for libzstd... yes checking zstd soname... libzstd.so.1 checking for leancrypto >= 1.2.0... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating ldd.sh config.status: creating Makefile config.status: creating doc/Makefile config.status: creating doc/credentials/Makefile config.status: creating doc/credentials/srp/Makefile config.status: creating doc/credentials/x509/Makefile config.status: creating doc/doxygen/Doxyfile config.status: creating doc/examples/Makefile config.status: creating doc/latex/Makefile config.status: creating doc/manpages/Makefile config.status: creating doc/reference/Makefile config.status: creating doc/reference/version.xml config.status: creating doc/scripts/Makefile config.status: creating extra/Makefile config.status: creating extra/includes/Makefile config.status: creating libdane/Makefile config.status: creating libdane/includes/Makefile config.status: creating libdane/gnutls-dane.pc config.status: creating gl/Makefile config.status: creating lib/Makefile config.status: creating lib/accelerated/Makefile config.status: creating lib/accelerated/x86/Makefile config.status: creating lib/accelerated/aarch64/Makefile config.status: creating lib/algorithms/Makefile config.status: creating lib/auth/Makefile config.status: creating lib/ext/Makefile config.status: creating lib/extras/Makefile config.status: creating lib/gnutls.pc config.status: creating lib/includes/Makefile config.status: creating lib/includes/gnutls/gnutls.h config.status: creating lib/liboqs/Makefile config.status: creating lib/minitasn1/Makefile config.status: creating lib/nettle/Makefile config.status: creating lib/x509/Makefile config.status: creating lib/unistring/Makefile config.status: creating po/Makefile.in config.status: creating src/Makefile config.status: creating src/gl/Makefile config.status: creating src/gl/tests/Makefile config.status: creating tests/Makefile config.status: creating tests/windows/Makefile config.status: creating tests/cert-tests/Makefile config.status: creating tests/slow/Makefile config.status: creating tests/suite/Makefile config.status: creating fuzz/Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing po-directories commands config.status: creating po/POTFILES config.status: creating po/Makefile config.status: executing libtool commands configure: summary of build options: version: 3.8.9 shared 70:3:40 Host/Target system: riscv64-unknown-linux-gnu Build system: riscv64-unknown-linux-gnu Install prefix: /usr Compiler: gcc Valgrind: no CFlags: -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/gnutls/src=/usr/src/debug/gnutls -flto=auto Library types: Shared=yes, Static=no Local libtasn1: no Local unistring: no Use nettle-mini: no Documentation: yes (manpages: yes) configure: External hardware support: /dev/crypto: no AF_ALG support: no Hardware accel: none Padlock accel: no Random gen. variant: getrandom PKCS#11 support: yes TPM support: no TPM2 support: dlopen KTLS support: yes configure: TPM2 library: tss2-esys tss2-mu tss2-tctildr configure: Optional features: (note that included applications might not compile properly if features are disabled) SSL3.0 support: no SSL2.0 client hello: yes Allow SHA1 sign: no DTLS-SRTP support: yes ALPN support: yes OCSP support: yes SRP support: no PSK support: yes DHE support: yes ECDHE support: yes GOST support: yes Anon auth support: yes Heartbeat support: no IDNA support: IDNA 2008 (libidn2) Non-SuiteB curves: yes FIPS140 mode: no Strict DER time: yes configure: Optional libraries: C++ library: yes DANE library: no OpenSSL compat: yes configure: System files: Trust store pkcs11: pkcs11: Trust store dir: Trust store file: Blocklist file: CRL file: Configuration file: /etc/gnutls/config DNSSEC root key file: /etc/unbound/root.key configure: WARNING: *** *** The DNSSEC root key file in /etc/unbound/root.key was not found. *** This file is needed for the verification of DNSSEC responses. *** Use the command: unbound-anchor -a "/etc/unbound/root.key" *** to generate or update it. *** make all-recursive make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.9' Making all in gl make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/gl' GEN alloca.h GEN arpa/inet.h GEN fcntl.h GEN float.h GEN malloc/scratch_buffer.gl.h GEN inttypes.h GEN limits.h GEN netdb.h GEN pthread.h GEN sched.h GEN stddef.h GEN stdio.h GEN stdlib.h GEN string.h GEN strings.h GEN sys/socket.h GEN sys/stat.h GEN sys/time.h GEN sys/types.h GEN sys/uio.h GEN time.h GEN unistd.h GEN wchar.h make all-recursive make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/gl' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/gl' CC libgnu_la-basename-lgpl.lo CC libgnu_la-arpa_inet.lo CC libgnu_la-bitrotate.lo CC libgnu_la-c-ctype.lo CC libgnu_la-c-strcasecmp.lo CC libgnu_la-c-strncasecmp.lo CC libgnu_la-cloexec.lo CC libgnu_la-dirname-lgpl.lo CC libgnu_la-stripslash.lo CC libgnu_la-fcntl.lo CC libgnu_la-fd-hook.lo CC libgnu_la-float.lo CC libgnu_la-hash.lo CC libgnu_la-hash-pjw-bare.lo CC libgnu_la-gl_linkedhash_list.lo CC libgnu_la-gl_list.lo CC libgnu_la-malloca.lo CC libgnu_la-mbszero.lo CC libgnu_la-memset_explicit.lo CC glthread/libgnu_la-once.lo CC libgnu_la-read-file.lo CC libgnu_la-realloc.lo CC libgnu_la-stat-time.lo CC libgnu_la-stdlib.lo CC glthread/libgnu_la-threadlib.lo CC libgnu_la-sys_socket.lo CC glthread/libgnu_la-tls.lo CC libgnu_la-unistd.lo CC libgnu_la-vsnzprintf.lo CC libgnu_la-xsize.lo CC asnprintf.lo CC fopen.lo CC printf-args.lo CC printf-parse.lo CC vasnprintf.lo CC malloc/libgnu_la-scratch_buffer_grow.lo CC malloc/libgnu_la-scratch_buffer_grow_preserve.lo CC malloc/libgnu_la-scratch_buffer_set_array_size.lo CC glthread/libgnu_la-lock.lo CCLD libgnu.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/gl' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/gl' Making all in lib make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib' make all-recursive make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib' Making all in includes make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/includes' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/includes' Making all in x509 make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/x509' make all-am make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/x509' CC common.lo CC key_encode.lo CC key_decode.lo CC time.lo CC crl.lo CC crl_write.lo CC crq.lo CC dn.lo CC attributes.lo CC prov-seed.lo CC extensions.lo CC mpi.lo CC output.lo CC pkcs12.lo CC pkcs12_bag.lo CC pkcs12_encr.lo CC pkcs7.lo CC pkcs7-attrs.lo CC pkcs7-crypt.lo CC privkey.lo CC privkey_pkcs8.lo CC privkey_pkcs8_pbes1.lo CC privkey_openssl.lo CC hostname-verify.lo CC sign.lo CC verify.lo CC x509.lo CC x509_dn.lo CC x509_write.lo CC name_constraints.lo CC verify-high.lo CC verify-high2.lo CC x509_ext.lo CC email-verify.lo CC pkcs7-output.lo CC virt-san.lo CC spki.lo CC tls_features.lo CC krb5.lo CC ip.lo CC ocsp.lo CC ocsp_output.lo CCLD libgnutls_x509.la make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/x509' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/x509' Making all in auth make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/auth' CC anon.lo CC cert.lo CC dh_common.lo CC dhe.lo CC rsa_psk.lo CC dhe_psk.lo CC psk.lo CC psk_passwd.lo CC rsa.lo CC srp_kx.lo CC srp_passwd.lo CC srp_rsa.lo CC srp_sb64.lo CC anon_ecdh.lo CC ecdhe.lo CC vko_gost.lo CCLD libgnutls_auth.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/auth' Making all in ext make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/ext' CC max_record.lo CC server_name.lo CC signature.lo CC safe_renegotiation.lo CC session_ticket.lo CC srp.lo CC heartbeat.lo CC status_request.lo CC dumbfw.lo CC ext_master_secret.lo CC etm.lo CC supported_versions.lo CC post_handshake.lo CC key_share.lo CC cookie.lo CC psk_ke_modes.lo CC pre_shared_key.lo CC supported_groups.lo CC ec_point_formats.lo CC early_data.lo CC record_size_limit.lo CC client_cert_type.lo CC server_cert_type.lo CC compress_certificate.lo CC alpn.lo CC srtp.lo CCLD libgnutls_ext.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/ext' Making all in algorithms make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/algorithms' CC cert_types.lo CC ciphers.lo CC ciphersuites.lo CC ecc.lo CC kx.lo CC mac.lo CC protocols.lo CC publickey.lo CC secparams.lo CC sign.lo CC groups.lo CCLD libgnutls_alg.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/algorithms' Making all in extras make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/extras' CC randomart.lo CC hex.lo CCLD libgnutls_extras.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/extras' Making all in accelerated make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/accelerated' make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/accelerated' CC accelerated.lo CC cryptodev.lo CC cryptodev-gcm.lo CC afalg.lo CCLD libaccelerated.la make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/accelerated' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/accelerated' Making all in nettle make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/nettle' CC pk.lo CC mpi.lo CC mac.lo CC cipher.lo CC init.lo CC rnd.lo CC prf.lo CC sysrng-linux.lo CC rnd-fuzzer.lo CC gost_keywrap.lo CC gost/magma.lo CC gost/kuznyechik.lo CC gost/acpkm.lo CC gost/cmac-magma.lo CC gost/cmac-kuznyechik.lo CC int/rsa-keygen-fips186.lo CC int/provable-prime.lo CC int/dsa-keygen-fips186.lo CC int/dsa-validate.lo CC int/tls1-prf.lo CC int/dsa-compute-k.lo CC int/ecdsa-compute-k.lo CC int/mpn-base256.lo CC int/rsa-pad.lo CC gost/write-le32.lo CC gost/gost28147.lo CC gost/gost-wrap.lo CC gost/streebog.lo CC gost/streebog-meta.lo CC gost/hmac-streebog.lo CC gost/bignum-le.lo CC gost/gostdsa-mask.lo CCLD libcrypto.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/nettle' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib' CC range.lo CC record.lo CC compress.lo CC debug.lo CC cipher.lo CC handshake-tls13.lo CC mbuffers.lo CC buffers.lo CC handshake.lo CC errors.lo CC dh.lo CC kx.lo CC cipher-cbc.lo CC priority.lo CC hash_int.lo CC cipher_int.lo CC session.lo CC db.lo CC x509_b64.lo CC hello_ext.lo CC auth.lo CC sslv2_compat.lo CC datum.lo CC session_pack.lo CC mpi.lo CC pk.lo CC cert-cred.lo CC global.lo CC constate.lo CC anon_cred.lo CC pkix_asn1_tab.lo CC gnutls_asn1_tab.lo CC mem.lo CC fingerprint.lo CC tls-sig.lo CC ecc.lo CC alert.lo CC privkey_raw.lo CC str-iconv.lo CC system.lo CC profiles.lo CC str.lo CC str-unicode.lo CC str-idna.lo CC state.lo CC cert-cred-x509.lo CC file.lo CC supplemental.lo CC random.lo CC crypto-api.lo CC privkey.lo CC pcert.lo CC pubkey.lo CC locks.lo CC dtls.lo CC system_override.lo CC crypto-backend.lo CC verify-tofu.lo CC pin.lo CC tpm.lo CC fips.lo CC safe-memfuncs.lo CC atfork.lo CC randomart.lo CC urls.lo CC prf.lo CC auto-verify.lo CC dh-session.lo CC cert-session.lo CC handshake-checks.lo CC dtls-sw.lo CC dh-primes.lo CC openpgp_compat.lo CC crypto-selftests.lo CC crypto-selftests-pk.lo CC secrets.lo CC extv.lo CC hello_ext_lib.lo CC ocsp-api.lo CC stek.lo CC cert-cred-rawpk.lo CC iov.lo CC system/ktls.lo CC pathbuf.lo CC vko.lo CC tpm2.lo CC tpm2_esys.lo CC dlwrap/tss2_esys.lo CC dlwrap/tss2_mu.lo CC dlwrap/tss2_tctildr.lo CC system/keys-dummy.lo CC tls13-sig.lo CC tls13/finished.lo CC tls13/key_update.lo CC tls13/hello_retry.lo CC tls13/session_ticket.lo CC tls13/certificate.lo CC tls13/early_data.lo CC tls13/post_handshake.lo CC tls13/psk_ext_parser.lo CC tls13/anti_replay.lo CC pkcs11.lo CC pkcs11x.lo CC pkcs11_privkey.lo CC pkcs11_write.lo CC pkcs11_secret.lo CC pkcs11_int.lo CC srp.lo CC psk.lo CXX libgnutlsxx_la-gnutlsxx.lo CC system/certs.lo CC system/threads.lo CC system/fastopen.lo CC system/sockets.lo CC inih/ini.lo CC dlwrap/zlib.lo CC dlwrap/zstd.lo CC dlwrap/brotlienc.lo CC tls13/encrypted_extensions.lo CC dlwrap/brotlidec.lo CC tls13/certificate_request.lo CC tls13/certificate_verify.lo CCLD libgnutls.la CXXLD libgnutlsxx.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib' Making all in extra make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/extra' Making all in includes make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/extra/includes' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/extra/includes' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/extra' CC gnutls_openssl.lo CC openssl_compat.lo CCLD libgnutls-openssl.la /usr/bin/nm: libgnu_la-arpa_inet.o: no symbols /usr/bin/nm: libgnu_la-fd-hook.o: no symbols /usr/bin/nm: libgnu_la-float.o: no symbols /usr/bin/nm: libgnu_la-stdlib.o: no symbols /usr/bin/nm: libgnu_la-sys_socket.o: no symbols /usr/bin/nm: libgnu_la-threadlib.o: no symbols /usr/bin/nm: libgnu_la-tls.o: no symbols /usr/bin/nm: libgnu_la-unistd.o: no symbols make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/extra' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/extra' Making all in po make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/po' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/po' Making all in src/gl make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl' GEN alloca.h GEN arpa/inet.h GEN error.h GEN fcntl.h GEN float.h GEN malloc/scratch_buffer.gl.h GEN inttypes.h GEN limits.h GEN netdb.h GEN pthread.h GEN sched.h GEN signal.h GEN stddef.h GEN stdio.h GEN string.h GEN stdlib.h GEN strings.h GEN sys/select.h GEN sys/socket.h GEN sys/stat.h GEN sys/time.h GEN sys/uio.h GEN sys/types.h GEN time.h GEN unistd.h GEN wchar.h make all-recursive make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl' Making all in . make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl' CC libgnu_gpl_la-arpa_inet.lo CC libgnu_gpl_la-basename-lgpl.lo CC libgnu_gpl_la-bitrotate.lo CC libgnu_gpl_la-c-ctype.lo CC libgnu_gpl_la-c-strcasecmp.lo CC libgnu_gpl_la-c-strncasecmp.lo CC libgnu_gpl_la-cloexec.lo CC libgnu_gpl_la-close-stream.lo CC libgnu_gpl_la-exitfail.lo CC libgnu_gpl_la-fcntl.lo CC libgnu_gpl_la-fd-hook.lo CC libgnu_gpl_la-float.lo CC libgnu_gpl_la-fseek.lo CC libgnu_gpl_la-fseeko.lo CC libgnu_gpl_la-getprogname.lo CC libgnu_gpl_la-gettime.lo CC libgnu_gpl_la-hash.lo CC libgnu_gpl_la-hash-pjw-bare.lo CC libgnu_gpl_la-ialloc.lo CC libgnu_gpl_la-gl_linked_list.lo CC libgnu_gpl_la-gl_linkedhash_list.lo CC libgnu_gpl_la-gl_list.lo CC libgnu_gpl_la-malloca.lo CC libgnu_gpl_la-mbszero.lo CC libgnu_gpl_la-memset_explicit.lo CC glthread/libgnu_gpl_la-once.lo CC libgnu_gpl_la-parse-datetime.lo CC libgnu_gpl_la-progname.lo CC libgnu_gpl_la-read-file.lo CC libgnu_gpl_la-realloc.lo CC libgnu_gpl_la-reallocarray.lo CC libgnu_gpl_la-sockets.lo CC libgnu_gpl_la-stat-time.lo CC libgnu_gpl_la-stdlib.lo CC libgnu_gpl_la-sys_socket.lo CC glthread/libgnu_gpl_la-threadlib.lo CC libgnu_gpl_la-time_rz.lo CC libgnu_gpl_la-timespec.lo CC glthread/libgnu_gpl_la-tls.lo CC libgnu_gpl_la-unistd.lo CC libgnu_gpl_la-vsnzprintf.lo CC libgnu_gpl_la-xmalloc.lo CC libgnu_gpl_la-xalloc-die.lo CC libgnu_gpl_la-gl_xlist.lo CC libgnu_gpl_la-xsize.lo CC asnprintf.lo CC fopen.lo CC mktime.lo CC printf-args.lo CC printf-parse.lo CC vasnprintf.lo CC malloc/libgnu_gpl_la-scratch_buffer_grow.lo CC malloc/libgnu_gpl_la-scratch_buffer_grow_preserve.lo CC malloc/libgnu_gpl_la-scratch_buffer_set_array_size.lo CC glthread/libgnu_gpl_la-lock.lo CCLD libgnu_gpl.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl' Making all in tests make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' GEN ctype.h GEN endian.h GEN langinfo.h GEN locale.h GEN math.h GEN sys/ioctl.h ## ---------------------------------------------------- ## ## ------------------- Gnulib tests ------------------- ## ## You can ignore compiler warnings in this directory. ## ## ---------------------------------------------------- ## make all-recursive make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' Making all in . make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[6]: Nothing to be done for 'all-am'. make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl' Making all in src make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src' make all-am make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src' CC psk.o CC psktool-options.lo CC cli-debug.o CC tests.o CC socket.o CC common.o CC gnutls-cli-debug-options.lo CC certtool.o CC certtool-common.o CC certtool-extras.o CC certtool-options.lo CC certtool-cfg.lo CC cfg.lo CC serv.o serv.c: In function 'terminate': serv.c:1140:9: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 1140 | write(STDERR_FILENO, buf, p - buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC udp-serv.o CC gnutls-serv-options.lo CC cli.o CC benchmark-cipher.o CC benchmark.o CC benchmark-tls.o CC ocsptool-common.o CC gnutls-cli-options.lo CC ocsptool.o CC ocsptool-options.lo CC p11tool-p11tool.o CC p11tool-pkcs11.o CC p11tool-certtool-common.o CC p11tool-certtool-extras.o CC p11tool-common.o CC p11tool-options.lo CC systemkey.o CC systemkey-tool-options.lo CC dumpcfg-cfg.o CC danetool-options.lo CCLD libcmd-psk.la CCLD libcmd-cli-debug.la CCLD libcerttool-cfg.la CCLD libcmd-serv.la CCLD libcmd-cli.la CCLD libcmd-ocsp.la CCLD dumpcfg copying selected object files to avoid basename conflicts... CCLD psktool CCLD gnutls-cli-debug CCLD gnutls-serv CCLD gnutls-cli CCLD ocsptool In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2415 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2033 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1791 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1798 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1785 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1934 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1961 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1988 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... |...... | 2024 | case 33: /* zone: tZONE relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... |...... | 2042 | case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... |...... | 2055 | case 37: /* zone: tZONE tDST */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... |...... | 2070 | case 39: /* day: tDAY ',' */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... |...... | 2079 | case 40: /* day: tORDINAL tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... |...... | 2089 | case 41: /* day: tUNUMBER tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... |...... | 2169 | case 46: /* date: tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... |...... | 2188 | case 48: /* date: tUNUMBER tMONTH */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... |...... | 2218 | case 52: /* rel: relunit tAGO */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... |...... | 2236 | case 55: /* relunit: tORDINAL tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... |...... | 2242 | case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... |...... | 2254 | case 58: /* relunit: tORDINAL tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... |...... | 2260 | case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... |...... | 2272 | case 61: /* relunit: tORDINAL tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... |...... | 2279 | case 62: /* relunit: tUNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... |...... | 2292 | case 64: /* relunit: tORDINAL tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... |...... | 2298 | case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... |...... | 2310 | case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... |...... | 2316 | case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... |...... | 2328 | case 70: /* relunit: tORDINAL tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... |...... | 2334 | case 71: /* relunit: tUNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... |...... | 2340 | case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... |...... | 2346 | case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... |...... | 2358 | case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... |...... | 2364 | case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... |...... | 2370 | case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... |...... | 2377 | case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... |...... | 2383 | case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... |...... | 2389 | case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... |...... | 2401 | case 86: /* signed_seconds: tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... |...... | 2408 | case 88: /* unsigned_seconds: tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_175->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... |...... | 2421 | case 90: /* hybrid: tUNUMBER relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_175->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... |...... | 2438 | case 92: /* o_colon_minutes: ':' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | CCLD libcmd-p11tool.la copying selected object files to avoid basename conflicts... CCLD libcmd-systemkey.la copying selected object files to avoid basename conflicts... CCLD libcmd-danetool.la copying selected object files to avoid basename conflicts... CCLD libcmd-certtool.la copying selected object files to avoid basename conflicts... In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2415 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2033 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1791 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1798 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1785 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1934 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1961 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1988 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... |...... | 2024 | case 33: /* zone: tZONE relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... |...... | 2042 | case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... |...... | 2055 | case 37: /* zone: tZONE tDST */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... |...... | 2070 | case 39: /* day: tDAY ',' */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... |...... | 2079 | case 40: /* day: tORDINAL tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... |...... | 2089 | case 41: /* day: tUNUMBER tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... |...... | 2169 | case 46: /* date: tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... |...... | 2188 | case 48: /* date: tUNUMBER tMONTH */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ CCLD p11tool 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... |...... | 2218 | case 52: /* rel: relunit tAGO */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... |...... | 2236 | case 55: /* relunit: tORDINAL tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... |...... | 2242 | case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... |...... | 2254 | case 58: /* relunit: tORDINAL tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... |...... | 2260 | case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... |...... | 2272 | case 61: /* relunit: tORDINAL tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... |...... | 2279 | case 62: /* relunit: tUNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... |...... | 2292 | case 64: /* relunit: tORDINAL tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... |...... | 2298 | case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... |...... | 2310 | case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... |...... | 2316 | case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... |...... | 2328 | case 70: /* relunit: tORDINAL tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... |...... | 2334 | case 71: /* relunit: tUNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... |...... | 2340 | case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... |...... | 2346 | case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... |...... | 2358 | case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... |...... | 2364 | case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... |...... | 2370 | case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... |...... | 2377 | case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... |...... | 2383 | case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... |...... | 2389 | case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... |...... | 2401 | case 86: /* signed_seconds: tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... |...... | 2408 | case 88: /* unsigned_seconds: tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_175->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... |...... | 2421 | case 90: /* hybrid: tUNUMBER relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_175->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... |...... | 2438 | case 92: /* o_colon_minutes: ':' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | CCLD systemkey In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2033 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2415 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1791 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1798 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1785 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1934 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1961 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1988 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... |...... | 2024 | case 33: /* zone: tZONE relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... |...... | 2042 | case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... |...... | 2055 | case 37: /* zone: tZONE tDST */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... |...... | 2070 | case 39: /* day: tDAY ',' */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... |...... | 2079 | case 40: /* day: tORDINAL tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... |...... | 2089 | case 41: /* day: tUNUMBER tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... |...... | 2169 | case 46: /* date: tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... |...... | 2188 | case 48: /* date: tUNUMBER tMONTH */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... |...... | 2218 | case 52: /* rel: relunit tAGO */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... |...... | 2236 | case 55: /* relunit: tORDINAL tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... |...... | 2242 | case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... |...... | 2254 | case 58: /* relunit: tORDINAL tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... |...... | 2260 | case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... |...... | 2272 | case 61: /* relunit: tORDINAL tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... |...... | 2279 | case 62: /* relunit: tUNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... |...... | 2292 | case 64: /* relunit: tORDINAL tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... |...... | 2298 | case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... |...... | 2310 | case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... |...... | 2316 | case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... |...... | 2328 | case 70: /* relunit: tORDINAL tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... |...... | 2334 | case 71: /* relunit: tUNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... |...... | 2340 | case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... |...... | 2346 | case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... |...... | 2358 | case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... |...... | 2364 | case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... |...... | 2370 | case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... |...... | 2377 | case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... |...... | 2383 | case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... |...... | 2389 | case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... |...... | 2401 | case 86: /* signed_seconds: tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... |...... | 2408 | case 88: /* unsigned_seconds: tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_175->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... |...... | 2421 | case 90: /* hybrid: tUNUMBER relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_175->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... |...... | 2438 | case 92: /* o_colon_minutes: ':' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2415 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2033 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1791 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1798 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1785 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1934 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1961 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1988 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... |...... | 2024 | case 33: /* zone: tZONE relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... |...... | 2042 | case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... |...... | 2055 | case 37: /* zone: tZONE tDST */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... |...... | 2070 | case 39: /* day: tDAY ',' */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... |...... | 2079 | case 40: /* day: tORDINAL tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... |...... | 2089 | case 41: /* day: tUNUMBER tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ CCLD certtool 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... |...... | 2169 | case 46: /* date: tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... |...... | 2188 | case 48: /* date: tUNUMBER tMONTH */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... |...... | 2218 | case 52: /* rel: relunit tAGO */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... |...... | 2236 | case 55: /* relunit: tORDINAL tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... |...... | 2242 | case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... |...... | 2254 | case 58: /* relunit: tORDINAL tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... |...... | 2260 | case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... |...... | 2272 | case 61: /* relunit: tORDINAL tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... |...... | 2279 | case 62: /* relunit: tUNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... |...... | 2292 | case 64: /* relunit: tORDINAL tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... |...... | 2298 | case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... |...... | 2310 | case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... |...... | 2316 | case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... |...... | 2328 | case 70: /* relunit: tORDINAL tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... |...... | 2334 | case 71: /* relunit: tUNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... |...... | 2340 | case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... |...... | 2346 | case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... |...... | 2358 | case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... |...... | 2364 | case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... |...... | 2370 | case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... |...... | 2377 | case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... |...... | 2383 | case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... |...... | 2389 | case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... |...... | 2401 | case 86: /* signed_seconds: tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... |...... | 2408 | case 88: /* unsigned_seconds: tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_175->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... |...... | 2421 | case 90: /* hybrid: tUNUMBER relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_175->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... |...... | 2438 | case 92: /* o_colon_minutes: ':' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | cli.c: In function 'try_resume.isra': cli.c:1049:28: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 1049 | edata.size = size; | ^ cli.c:1040:24: note: 'size' was declared here 1040 | size_t size; | ^ In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2033 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2415 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1791 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1798 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1785 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1934 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1961 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1988 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... |...... | 2024 | case 33: /* zone: tZONE relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... |...... | 2042 | case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... |...... | 2055 | case 37: /* zone: tZONE tDST */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... |...... | 2070 | case 39: /* day: tDAY ',' */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... |...... | 2079 | case 40: /* day: tORDINAL tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... |...... | 2089 | case 41: /* day: tUNUMBER tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... |...... | 2169 | case 46: /* date: tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... |...... | 2188 | case 48: /* date: tUNUMBER tMONTH */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... |...... | 2218 | case 52: /* rel: relunit tAGO */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... |...... | 2236 | case 55: /* relunit: tORDINAL tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... |...... | 2242 | case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... |...... | 2254 | case 58: /* relunit: tORDINAL tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... |...... | 2260 | case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... |...... | 2272 | case 61: /* relunit: tORDINAL tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... |...... | 2279 | case 62: /* relunit: tUNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... |...... | 2292 | case 64: /* relunit: tORDINAL tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... |...... | 2298 | case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... |...... | 2310 | case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... |...... | 2316 | case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... |...... | 2328 | case 70: /* relunit: tORDINAL tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... |...... | 2334 | case 71: /* relunit: tUNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... |...... | 2340 | case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... |...... | 2346 | case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... |...... | 2358 | case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... |...... | 2364 | case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... |...... | 2370 | case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... |...... | 2377 | case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... |...... | 2383 | case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... |...... | 2389 | case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... |...... | 2401 | case 86: /* signed_seconds: tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... |...... | 2408 | case 88: /* unsigned_seconds: tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_175->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... |...... | 2421 | case 90: /* hybrid: tUNUMBER relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_175->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... |...... | 2438 | case 92: /* o_colon_minutes: ':' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2033 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2415 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1791 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1798 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1785 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1934 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1961 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1988 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... |...... | 2024 | case 33: /* zone: tZONE relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... |...... | 2042 | case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... |...... | 2055 | case 37: /* zone: tZONE tDST */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... |...... | 2070 | case 39: /* day: tDAY ',' */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... |...... | 2079 | case 40: /* day: tORDINAL tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... |...... | 2089 | case 41: /* day: tUNUMBER tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... |...... | 2169 | case 46: /* date: tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... |...... | 2188 | case 48: /* date: tUNUMBER tMONTH */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... |...... | 2218 | case 52: /* rel: relunit tAGO */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... |...... | 2236 | case 55: /* relunit: tORDINAL tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... |...... | 2242 | case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... |...... | 2254 | case 58: /* relunit: tORDINAL tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... |...... | 2260 | case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... |...... | 2272 | case 61: /* relunit: tORDINAL tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... |...... | 2279 | case 62: /* relunit: tUNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... |...... | 2292 | case 64: /* relunit: tORDINAL tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... |...... | 2298 | case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... |...... | 2310 | case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... |...... | 2316 | case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... |...... | 2328 | case 70: /* relunit: tORDINAL tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... |...... | 2334 | case 71: /* relunit: tUNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... |...... | 2340 | case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... |...... | 2346 | case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... |...... | 2358 | case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... |...... | 2364 | case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... |...... | 2370 | case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... |...... | 2377 | case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... |...... | 2383 | case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... |...... | 2389 | case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... |...... | 2401 | case 86: /* signed_seconds: tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... |...... | 2408 | case 88: /* unsigned_seconds: tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_175->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... |...... | 2421 | case 90: /* hybrid: tUNUMBER relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_175->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... |...... | 2438 | case 92: /* o_colon_minutes: ':' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2415 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2033 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1791 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1798 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | 1540 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1779 | goto yydefault; | 1780 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1785 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1934 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1943 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1952 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1961 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1970 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1979 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1988 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... |...... | 2024 | case 33: /* zone: tZONE relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... |...... | 2042 | case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... |...... | 2055 | case 37: /* zone: tZONE tDST */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... |...... | 2070 | case 39: /* day: tDAY ',' */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... |...... | 2079 | case 40: /* day: tORDINAL tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... |...... | 2089 | case 41: /* day: tUNUMBER tDAY */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2099 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 836 | pc->year = $1; | | ~ | | | | | (55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2108 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 847 | pc->month = $1.value; | | | | | | | (55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2145 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2157 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... |...... | 2169 | case 46: /* date: tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2178 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... |...... | 2188 | case 48: /* date: tUNUMBER tMONTH */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2197 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2207 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... |...... | 2218 | case 52: /* rel: relunit tAGO */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... |...... | 2236 | case 55: /* relunit: tORDINAL tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... |...... | 2242 | case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... |...... | 2254 | case 58: /* relunit: tORDINAL tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... |...... | 2260 | case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... |...... | 2272 | case 61: /* relunit: tORDINAL tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... |...... | 2279 | case 62: /* relunit: tUNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... |...... | 2292 | case 64: /* relunit: tORDINAL tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... |...... | 2298 | case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... |...... | 2310 | case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... |...... | 2316 | case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... |...... | 2328 | case 70: /* relunit: tORDINAL tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... |...... | 2334 | case 71: /* relunit: tUNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... |...... | 2340 | case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... |...... | 2346 | case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... |...... | 2358 | case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... |...... | 2364 | case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... |...... | 2370 | case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... |...... | 2377 | case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... |...... | 2383 | case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... |...... | 2389 | case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... |...... | 2401 | case 86: /* signed_seconds: tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... |...... | 2408 | case 88: /* unsigned_seconds: tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_175->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... |...... | 2421 | case 90: /* hybrid: tUNUMBER relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_175->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1835 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1849 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1608 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1747 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1750 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1726 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1729 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1742 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1759 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1767 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1812 | goto yyerrlab; | 1813 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... |...... | 2438 | case 92: /* o_colon_minutes: ':' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2549 | { | 2550 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2552 | { | 2553 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2572 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src' Making all in tests make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests' Making all in . make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests' CC utils.lo CC seccomp.lo CC utils-adv.lo CC pkcs11/pkcs11-mock.lo utils.c: In function '_fail': utils.c:96:9: warning: ignoring return value of 'vasprintf' declared with attribute 'warn_unused_result' [-Wunused-result] 96 | vasprintf(&str, format, arg_ptr); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC pkcs11/pkcs11-mock2.lo CC pkcs11/pkcs11-mock3.lo CCLD libutils.la CCLD libpkcs11mock3.la CCLD libpkcs11mock1.la CCLD libpkcs11mock2.la make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests' Making all in cert-tests make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests/cert-tests' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests/cert-tests' Making all in slow make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests/slow' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests/slow' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests' Making all in fuzz make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/fuzz' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/fuzz' Making all in doc/manpages make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc/manpages' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc/manpages' Making all in doc make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc' Making all in examples make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc/examples' CC ex-client-resume.o CC ex-alert.lo CC ex-pkcs12.lo CC ex-session-info.lo CC ex-x509-info.lo CC ex-verify.lo CC ex-client-x509-3.1.lo CC tcp.lo CC udp.lo CC ex-pkcs11-list.lo CC verify.lo CC ex-verify-ssh.lo CC ex-client-dtls.o CC ex-cert-select.o CC ex-client-x509.o CC ex-serv-dtls.o CC print-ciphersuites.o CC ex-serv-x509.o CXX ex_cxx-ex-cxx.o CC ex-client-anon.o CC ex-serv-anon.o CC ex-cert-select-pkcs11.o CC ex-client-psk.o CC ex-serv-psk.o CC ex-ocsp-client.o CCLD libexamples.la CC tlsproxy/buffer.o CC tlsproxy/crypto-gnutls.o CC tlsproxy/tlsproxy.o CCLD ex-client-resume CCLD ex-client-dtls CCLD ex-cert-select CCLD ex-client-x509 CCLD ex-serv-dtls CCLD print-ciphersuites CCLD ex-serv-x509 CXXLD ex-cxx ex-serv-x509.c: In function 'main': ex-serv-x509.c:113:9: warning: 'listen' on possibly invalid file descriptor 'listen_sd_57' [-Wanalyzer-fd-use-without-check] 113 | listen(listen_sd, 1024); | ^ 'main': events 1-16 | | 60 | CHECK(gnutls_global_init()); | | ^ | | | | | (1) following 'true' branch... | 61 | | 62 | CHECK(gnutls_certificate_allocate_credentials(&x509_cred)); | | ~ | | | | | (2) ...to here | | (3) following 'true' branch... | 63 | | 64 | CHECK(gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE, | | ~ | | | | | (4) ...to here | | (5) following 'true' branch... |...... | 67 | CHECK(gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE, | | ~ | | | | | (6) ...to here | | (7) following 'true' branch... |...... | 76 | CHECK(gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE, KEYFILE, | | ~ | | | | | (8) ...to here | | (9) following 'true' branch... |...... | 79 | CHECK(gnutls_certificate_set_ocsp_status_request_file( | | ~ | | | | | (10) ...to here | | (11) following 'true' branch... |...... | 82 | CHECK(gnutls_priority_init(&priority_cache, NULL, NULL)); | | ~ | | | | | (12) ...to here | | (13) following 'true' branch... |...... | 95 | gnutls_certificate_set_known_dh_params(x509_cred, | | ~ | | | | | (14) ...to here |...... | 101 | listen_sd = socket(AF_INET, SOCK_STREAM, 0); | | ~ | | | | | (15) when 'socket' fails |...... | 113 | listen(listen_sd, 1024); | | ~ | | | | | (16) 'listen_sd_57' could be invalid | CCLD ex-client-anon CCLD ex-serv-anon CCLD ex-cert-select-pkcs11 CCLD ex-client-psk CCLD ex-serv-psk CCLD tlsproxy/tlsproxy CCLD ex-ocsp-client ex-ocsp-client.c: In function 'load_cert': ex-ocsp-client.c:182:19: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 182 | data.size = size; | ^ ex-ocsp-client.c:175:16: note: 'size' was declared here 175 | size_t size; | ^ tlsproxy/tlsproxy.c: In function 'runlistener': tlsproxy/tlsproxy.c:89:22: warning: leak of file descriptor 'bindtoaddress (listenaddr)' [CWE-775] [-Wanalyzer-fd-leak] 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | ^ 'runlistener': events 1-2 | | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-14 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... |...... | 88 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (6) following 'true' branch (when 'rp_14' is non-NULL)... | | (5) ...to here | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (7) ...to here | | (8) socket created here | | (9) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (10) following 'true' branch (when 'fd_38 >= 0')... | 92 | int one = 1; | | ~ | | | | | (11) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (12) following 'false' branch... |...... | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (13) ...to here | | (14) following 'true' branch... | 'bindtoaddress': event 15 | |lto1: | (15): ...to here | 'bindtoaddress': events 16-21 | | 83 | return -1; | | ~ | | | | | (21) ...to here |...... | 104 | if (!rp) { | | ^ | | | | | (16) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 110 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (17) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~~ | | || | | |(18) stream socket marked as passive here via 'listen' | | |(19) when 'listen' succeeds | | (20) following 'false' branch... | <------+ | 'runlistener': events 22-23 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ ^ | | | | | | | (22) returning to 'runlistener' from 'bindtoaddress' | | (23) following 'false' branch... | 'runlistener': event 24 | |lto1: | (24): ...to here | 'bindtoaddress': event 25 | | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ^ | | | | | (25) 'bindtoaddress (listenaddr)' leaks here | In function 'bufGetCount', inlined from 'bufIsOverHWM' at tlsproxy/buffer.c:197:9: tlsproxy/buffer.c:207:14: warning: dereference of NULL 'b_4(D)' [CWE-476] [-Wanalyzer-null-dereference] 207 | if (b->empty) | ^ 'runlistener': events 1-2 | |tlsproxy/tlsproxy.c:214:12: | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-13 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... |...... | 88 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (6) following 'true' branch (when 'rp_14' is non-NULL)... | | (5) ...to here | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (7) ...to here | | (8) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (9) following 'true' branch (when 'fd_38 >= 0')... | 92 | int one = 1; | | ~ | | | | | (10) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (11) following 'false' branch... |...... | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (12) ...to here | | (13) following 'true' branch... | 'bindtoaddress': event 14 | |lto1: | (14): ...to here | 'bindtoaddress': events 15-19 | | 83 | return -1; | | ~ | | | | | (19) ...to here |...... | 104 | if (!rp) { | | ^ | | | | | (15) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 110 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (16) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~~ | | || | | |(17) when 'listen' succeeds | | (18) following 'false' branch... | <------+ | 'runlistener': events 20-21 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ ^ | | | | | | | (20) returning to 'runlistener' from 'bindtoaddress' | | (21) following 'false' branch... | 'runlistener': event 22 | |lto1: | (22): ...to here | 'runlistener': event 23 | | 228 | while (!rxsigquit) { | | ^ | | | | | (23) following 'true' branch... | 'runlistener': event 24 | |lto1: | (24): ...to here | 'runlistener': events 25-29 | | 237 | if (rxsigquit) | | ^ | | | | | (25) following 'false' branch... | 238 | break; | 239 | if (nofork < 2) { | | ~ ~ | | | | | | | (26) ...to here | | (27) following 'true' branch... | 240 | int ret = runproxy(fd); | | ~ | | | | | (28) ...to here | | (29) calling 'runproxy' from 'runlistener' | +--> 'runproxy': events 30-31 | | 178 | static int runproxy(int acceptfd) | | ^ | | | | | (30) entry to 'runproxy' |...... | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ | | | | | (31) calling 'connecttoaddress' from 'runproxy' | +--> 'connecttoaddress': events 32-43 | | 120 | static int connecttoaddress(char *addrport) | | ^ | | | | | (32) entry to 'connecttoaddress' |...... | 146 | if (s != 0) { | | ~ | | | | | (33) following 'false' branch... |...... | 153 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (35) following 'true' branch (when 'rp_14' is non-NULL)... | | (34) ...to here | 154 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (36) ...to here | | (37) when 'socket' succeeds | 155 | if (fd >= 0) { | | ~ | | | | | (38) following 'true' branch (when 'fd_42 >= 0')... | 156 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (39) ...to here | | (40) following 'true' branch... |...... | 162 | if (!rp) { | | ~ | | | | | (41) ...to here | | (42) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 168 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (43) ...to here | <------+ | 'runproxy': events 44-47 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ ^ | | | | | | | (44) returning to 'runproxy' from 'connecttoaddress' | | (45) following 'false' branch... |...... | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ~ | | | | | (46) ...to here | | (47) calling 'tlssession_new' from 'runproxy' | +--> 'tlssession_new': events 48-64 | |tlsproxy/crypto-gnutls.c:163:15: | 163 | tlssession_t *tlssession_new(int isserver, char *keyfile, char *certfile, | | ^ | | | | | (48) entry to 'tlssession_new' |...... | 172 | if (!s) | | ~ | | | | | (49) following 'false' branch (when 's_35' is non-NULL)... |...... | 175 | if (quitfn) | | ~ | | | | | (50) ...to here | | (51) following 'true' branch (when 'quitfn_36(D)' is non-NULL)... | 176 | s->quitfn = quitfn; | | ~ | | | | | (52) ...to here |...... | 180 | if (erroutfn) | | ~ | | | | | (53) following 'false' branch (when 'erroutfn_39(D)' is NULL)... |...... | 183 | s->erroutfn = stderrout; | | ~ | | | | | (54) ...to here |...... | 190 | if (gnutls_certificate_allocate_credentials(&s->creds) < 0) { | | ~ | | | | | (55) following 'false' branch... |...... | 195 | if (cacertfile != NULL) { | | ~ | | | | | (56) ...to here |...... | 232 | if (ret < 0) { | | ~ | | | | | (57) following 'false' branch (when 'ret_20 >= 0')... |...... | 238 | gnutls_session_set_ptr(s->session, (void *)s); | | ~ | | | | | (58) ...to here |...... | 251 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... |...... | 257 | ret = gnutls_credentials_set(s->session, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (60) ...to here | 258 | s->creds); | 259 | if (ret < 0) { | | ~ | | | | | (61) following 'false' branch... |...... | 265 | if (isserver) { | | ~ | | | | | (62) ...to here | | (63) following 'true' branch (when 'isserver_63(D) != 0')... | 266 | /* requests but does not check a client certificate */ | 267 | gnutls_certificate_server_set_request(s->session, | | ~ | | | | | (64) ...to here | <------+ | 'runproxy': events 65-70 | |tlsproxy/tlsproxy.c:187:33: | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ^ | | | | | (65) returning to 'runproxy' from 'tlssession_new' |...... | 190 | if (!session) { | | ~ | | | | | (66) following 'false' branch... |...... | 198 | if (server) | | ~~ | | || | | |(67) ...to here | | (68) following 'true' branch... | 199 | ret = tlssession_mainloop(acceptfd, connectfd, session); | | ~ | | | | | (69) ...to here | | (70) calling 'tlssession_mainloop' from 'runproxy' | +--> 'tlssession_mainloop': events 71-72 | |tlsproxy/crypto-gnutls.c:293:5: | 293 | int tlssession_mainloop(int cryptfd, int plainfd, tlssession_t *s) | | ^ | | | | | (71) entry to 'tlssession_mainloop' |...... | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (72) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 73-76 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (73) entry to 'bufNew' | 79 | { | 80 | buffer_t *b = calloc(1, sizeof(buffer_t)); | | ~ | | | | | (74) allocated here | 81 | if (!b) | | ~ | | | | | (75) assuming 'b_6' is NULL | | (76) following 'true' branch (when 'b_6' is NULL)... | 'bufNew': event 77 | |lto1: | (77): ...to here | <------+ | 'tlssession_mainloop': events 78-79 | |tlsproxy/crypto-gnutls.c:303:34: | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (78) returning to 'tlssession_mainloop' from 'bufNew' | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (79) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 80-82 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (80) entry to 'bufNew' |...... | 81 | if (!b) | | ~ | | | | | (81) following 'false' branch (when 'b_6' is non-NULL)... |...... | 84 | b->buf = calloc(1, size); | | ~ | | | | | (82) ...to here | <------+ | 'tlssession_mainloop': events 83-84 | |tlsproxy/crypto-gnutls.c:304:34: | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (83) returning to 'tlssession_mainloop' from 'bufNew' | 305 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~ | | | | | (84) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 85-86 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (85) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (86) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 87-91 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (87) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (88) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (89) ...to here |...... | 259 | switch (action) | | ~ | | | | | (90) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (91) ...to here | <------+ | 'socksetnonblock': events 92-97 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (92) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (93) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (94) ...to here | | (95) following 'false' branch (when 'nb_8(D) == 0')... | | (96) ...to here | | (97) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 98-102 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (98) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (99) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (100) ...to here |...... | 259 | switch (action) | | ~ | | | | | (101) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (102) ...to here | <------+ | 'socksetnonblock': event 103 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (103) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 104-109 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~^ | | || | | |(104) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (105) following 'false' branch... |...... | 312 | gnutls_transport_set_ptr(s->session, | | ~ | | | | | (106) ...to here |...... | 317 | if (ret < 0) { | | ~ | | | | | (107) following 'false' branch... |...... | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ~ | | | | | (108) ...to here | | (109) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 110-111 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (110) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (111) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 112-116 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (112) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (113) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (114) ...to here |...... | 259 | switch (action) | | ~ | | | | | (115) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (116) ...to here | <------+ | 'socksetnonblock': events 117-122 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (117) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (118) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (119) ...to here | | (120) following 'true' branch (when 'nb_8(D) != 0')... | | (121) ...to here | | (122) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 123-127 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (123) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (124) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (125) ...to here |...... | 259 | switch (action) | | ~ | | | | | (126) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (127) ...to here | <------+ | 'socksetnonblock': event 128 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (128) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 129-132 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ~^ | | || | | |(129) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (130) following 'false' branch... |...... | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ~ | | | | | (131) ...to here | | (132) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 133-134 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (133) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (134) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 135-139 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (135) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (136) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (137) ...to here |...... | 259 | switch (action) | | ~ | | | | | (138) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (139) ...to here | <------+ | 'socksetnonblock': events 140-145 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (140) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (141) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (142) ...to here | | (143) following 'true' branch (when 'nb_8(D) != 0')... | | (144) ...to here | | (145) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 146-150 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (146) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (147) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (148) ...to here |...... | 259 | switch (action) | | ~ | | | | | (149) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (150) ...to here | <------+ | 'socksetnonblock': event 151 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (151) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 152-156 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ~^ | | || | | |(152) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (153) following 'false' branch... |...... | 332 | maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1; | | ~ | | | | | (154) ...to here | 333 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ~ ~ | | | | | | | (156) inlined call to 'quit' from 'tlssession_mainloop' | | (155) following 'true' branch (when 'plainEOF_79 == 0')... | +--> 'quit': event 157 | | 72 | return s->quitfn(s->opaque); | | ^ | | | | | (157) ...to here | <------+ | 'tlssession_mainloop': event 158 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ^ | | | | | (158) following 'true' branch... | 'tlssession_mainloop': event 159 | |lto1: | (159): ...to here | 'tlssession_mainloop': events 160-162 | | 340 | FD_ZERO(&readfds); | | ^ | | | | | (160) following 'true' branch (when '__i_86 != 16')... | | (161) ...to here | | (162) following 'false' branch (when '__i_86 == 16')... | 'tlssession_mainloop': event 163 | |lto1: | (163): ...to here | 'tlssession_mainloop': events 164-172 | | 341 | FD_ZERO(&writefds); | | ^ | | | | | (164) following 'true' branch (when '__i_87 != 16')... | | (165) ...to here | | (166) following 'false' branch (when '__i_87 == 16')... | 342 | | 343 | size_t buffered = gnutls_record_check_pending(s->session); | | ~ | | | | | (167) ...to here |...... | 347 | if (plainEOF) { | | ~ | | | | | (168) following 'false' branch (when 'plainEOF_79 == 0')... |...... | 355 | if (!bufIsEmpty(cryptToPlain)) | | ~ ~ | | | | | | | (169) ...to here | | (170) following 'false' branch... | 356 | FD_SET(plainfd, &writefds); | 357 | if (!bufIsOverHWM(plainToCrypt)) | | ~ | | | | | (171) ...to here | | (172) calling 'bufIsOverHWM' from 'tlssession_mainloop' | +--> 'bufIsOverHWM': events 173-174 | |tlsproxy/buffer.c:195:5: | 195 | int bufIsOverHWM(buffer_t *b) | | ^ | | | | | (173) entry to 'bufIsOverHWM' | 196 | { | 197 | return bufGetCount(b) > b->hwm; | | ~ | | | | | (174) inlined call to 'bufGetCount' from 'bufIsOverHWM' | +--> 'bufGetCount': event 175 | | 207 | if (b->empty) | | ^ | | | | | (175) dereference of NULL 'b_4(D)' | tlsproxy/buffer.c: In function 'bufIsEmpty': tlsproxy/buffer.c:187:17: warning: dereference of NULL 'b_2(D)' [CWE-476] [-Wanalyzer-null-dereference] 187 | return b->empty; | ^ 'runlistener': events 1-2 | |tlsproxy/tlsproxy.c:214:12: | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-13 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... |...... | 88 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (6) following 'true' branch (when 'rp_14' is non-NULL)... | | (5) ...to here | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (7) ...to here | | (8) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (9) following 'true' branch (when 'fd_38 >= 0')... | 92 | int one = 1; | | ~ | | | | | (10) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (11) following 'false' branch... |...... | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (12) ...to here | | (13) following 'true' branch... | 'bindtoaddress': event 14 | |lto1: | (14): ...to here | 'bindtoaddress': events 15-19 | | 83 | return -1; | | ~ | | | | | (19) ...to here |...... | 104 | if (!rp) { | | ^ | | | | | (15) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 110 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (16) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~~ | | || | | |(17) when 'listen' succeeds | | (18) following 'false' branch... | <------+ | 'runlistener': events 20-21 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ ^ | | | | | | | (20) returning to 'runlistener' from 'bindtoaddress' | | (21) following 'false' branch... | 'runlistener': event 22 | |lto1: | (22): ...to here | 'runlistener': event 23 | | 228 | while (!rxsigquit) { | | ^ | | | | | (23) following 'true' branch... | 'runlistener': event 24 | |lto1: | (24): ...to here | 'runlistener': events 25-29 | | 237 | if (rxsigquit) | | ^ | | | | | (25) following 'false' branch... | 238 | break; | 239 | if (nofork < 2) { | | ~ ~ | | | | | | | (26) ...to here | | (27) following 'true' branch... | 240 | int ret = runproxy(fd); | | ~ | | | | | (28) ...to here | | (29) calling 'runproxy' from 'runlistener' | +--> 'runproxy': events 30-31 | | 178 | static int runproxy(int acceptfd) | | ^ | | | | | (30) entry to 'runproxy' |...... | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ | | | | | (31) calling 'connecttoaddress' from 'runproxy' | +--> 'connecttoaddress': events 32-43 | | 120 | static int connecttoaddress(char *addrport) | | ^ | | | | | (32) entry to 'connecttoaddress' |...... | 146 | if (s != 0) { | | ~ | | | | | (33) following 'false' branch... |...... | 153 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (35) following 'true' branch (when 'rp_14' is non-NULL)... | | (34) ...to here | 154 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (36) ...to here | | (37) when 'socket' succeeds | 155 | if (fd >= 0) { | | ~ | | | | | (38) following 'true' branch (when 'fd_42 >= 0')... | 156 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (39) ...to here | | (40) following 'true' branch... |...... | 162 | if (!rp) { | | ~ | | | | | (41) ...to here | | (42) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 168 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (43) ...to here | <------+ | 'runproxy': events 44-47 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ ^ | | | | | | | (44) returning to 'runproxy' from 'connecttoaddress' | | (45) following 'false' branch... |...... | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ~ | | | | | (46) ...to here | | (47) calling 'tlssession_new' from 'runproxy' | +--> 'tlssession_new': events 48-64 | |tlsproxy/crypto-gnutls.c:163:15: | 163 | tlssession_t *tlssession_new(int isserver, char *keyfile, char *certfile, | | ^ | | | | | (48) entry to 'tlssession_new' |...... | 172 | if (!s) | | ~ | | | | | (49) following 'false' branch (when 's_35' is non-NULL)... |...... | 175 | if (quitfn) | | ~ | | | | | (50) ...to here | | (51) following 'true' branch (when 'quitfn_36(D)' is non-NULL)... | 176 | s->quitfn = quitfn; | | ~ | | | | | (52) ...to here |...... | 180 | if (erroutfn) | | ~ | | | | | (53) following 'false' branch (when 'erroutfn_39(D)' is NULL)... |...... | 183 | s->erroutfn = stderrout; | | ~ | | | | | (54) ...to here |...... | 190 | if (gnutls_certificate_allocate_credentials(&s->creds) < 0) { | | ~ | | | | | (55) following 'false' branch... |...... | 195 | if (cacertfile != NULL) { | | ~ | | | | | (56) ...to here |...... | 232 | if (ret < 0) { | | ~ | | | | | (57) following 'false' branch (when 'ret_20 >= 0')... |...... | 238 | gnutls_session_set_ptr(s->session, (void *)s); | | ~ | | | | | (58) ...to here |...... | 251 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... |...... | 257 | ret = gnutls_credentials_set(s->session, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (60) ...to here | 258 | s->creds); | 259 | if (ret < 0) { | | ~ | | | | | (61) following 'false' branch... |...... | 265 | if (isserver) { | | ~ | | | | | (62) ...to here | | (63) following 'true' branch (when 'isserver_63(D) != 0')... | 266 | /* requests but does not check a client certificate */ | 267 | gnutls_certificate_server_set_request(s->session, | | ~ | | | | | (64) ...to here | <------+ | 'runproxy': events 65-70 | |tlsproxy/tlsproxy.c:187:33: | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ^ | | | | | (65) returning to 'runproxy' from 'tlssession_new' |...... | 190 | if (!session) { | | ~ | | | | | (66) following 'false' branch... |...... | 198 | if (server) | | ~~ | | || | | |(67) ...to here | | (68) following 'true' branch... | 199 | ret = tlssession_mainloop(acceptfd, connectfd, session); | | ~ | | | | | (69) ...to here | | (70) calling 'tlssession_mainloop' from 'runproxy' | +--> 'tlssession_mainloop': events 71-72 | |tlsproxy/crypto-gnutls.c:293:5: | 293 | int tlssession_mainloop(int cryptfd, int plainfd, tlssession_t *s) | | ^ | | | | | (71) entry to 'tlssession_mainloop' |...... | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (72) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 73-74 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (73) entry to 'bufNew' |...... | 81 | if (!b) | | ~ | | | | | (74) following 'true' branch (when 'b_6' is NULL)... | 'bufNew': event 75 | |lto1: | (75): ...to here | <------+ | 'tlssession_mainloop': events 76-77 | |tlsproxy/crypto-gnutls.c:303:34: | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (76) returning to 'tlssession_mainloop' from 'bufNew' | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (77) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 78-81 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (78) entry to 'bufNew' | 79 | { | 80 | buffer_t *b = calloc(1, sizeof(buffer_t)); | | ~ | | | | | (79) allocated here | 81 | if (!b) | | ~ | | | | | (80) assuming 'b_6' is NULL | | (81) following 'true' branch (when 'b_6' is NULL)... | 'bufNew': event 82 | |lto1: | (82): ...to here | <------+ | 'tlssession_mainloop': events 83-84 | |tlsproxy/crypto-gnutls.c:304:34: | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (83) returning to 'tlssession_mainloop' from 'bufNew' | 305 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~ | | | | | (84) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 85-86 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (85) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (86) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 87-91 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (87) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (88) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (89) ...to here |...... | 259 | switch (action) | | ~ | | | | | (90) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (91) ...to here | <------+ | 'socksetnonblock': events 92-97 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (92) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (93) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (94) ...to here | | (95) following 'false' branch (when 'nb_8(D) == 0')... | | (96) ...to here | | (97) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 98-102 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (98) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (99) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (100) ...to here |...... | 259 | switch (action) | | ~ | | | | | (101) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (102) ...to here | <------+ | 'socksetnonblock': event 103 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (103) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 104-109 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~^ | | || | | |(104) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (105) following 'false' branch... |...... | 312 | gnutls_transport_set_ptr(s->session, | | ~ | | | | | (106) ...to here |...... | 317 | if (ret < 0) { | | ~ | | | | | (107) following 'false' branch... |...... | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ~ | | | | | (108) ...to here | | (109) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 110-111 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (110) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (111) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 112-116 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (112) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (113) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (114) ...to here |...... | 259 | switch (action) | | ~ | | | | | (115) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (116) ...to here | <------+ | 'socksetnonblock': events 117-122 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (117) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (118) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (119) ...to here | | (120) following 'true' branch (when 'nb_8(D) != 0')... | | (121) ...to here | | (122) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 123-127 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (123) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (124) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (125) ...to here |...... | 259 | switch (action) | | ~ | | | | | (126) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (127) ...to here | <------+ | 'socksetnonblock': event 128 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (128) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 129-132 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ~^ | | || | | |(129) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (130) following 'false' branch... |...... | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ~ | | | | | (131) ...to here | | (132) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 133-134 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (133) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (134) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 135-139 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (135) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (136) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (137) ...to here |...... | 259 | switch (action) | | ~ | | | | | (138) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (139) ...to here | <------+ | 'socksetnonblock': events 140-145 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (140) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (141) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (142) ...to here | | (143) following 'true' branch (when 'nb_8(D) != 0')... | | (144) ...to here | | (145) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 146-150 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (146) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (147) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (148) ...to here |...... | 259 | switch (action) | | ~ | | | | | (149) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (150) ...to here | <------+ | 'socksetnonblock': event 151 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (151) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 152-156 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ~^ | | || | | |(152) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (153) following 'false' branch... |...... | 332 | maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1; | | ~ | | | | | (154) ...to here | 333 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ~ ~ | | | | | | | (156) inlined call to 'quit' from 'tlssession_mainloop' | | (155) following 'true' branch (when 'plainEOF_79 == 0')... | +--> 'quit': event 157 | | 72 | return s->quitfn(s->opaque); | | ^ | | | | | (157) ...to here | <------+ | 'tlssession_mainloop': event 158 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ^ | | | | | (158) following 'true' branch... | 'tlssession_mainloop': event 159 | |lto1: | (159): ...to here | 'tlssession_mainloop': events 160-166 | | 340 | FD_ZERO(&readfds); | | ^ | | | | | (160) following 'true' branch (when '__i_86 != 16')... | | (161) ...to here | 341 | FD_ZERO(&writefds); | | ~ | | | | | (162) following 'true' branch (when '__i_87 != 16')... | | (163) ...to here |...... | 347 | if (plainEOF) { | | ~ | | | | | (164) following 'false' branch (when 'plainEOF_79 == 0')... |...... | 355 | if (!bufIsEmpty(cryptToPlain)) | | ~ | | | | | (165) ...to here | | (166) calling 'bufIsEmpty' from 'tlssession_mainloop' | +--> 'bufIsEmpty': events 167-168 | |tlsproxy/buffer.c:185:5: | 185 | int bufIsEmpty(buffer_t *b) | | ^ | | | | | (167) entry to 'bufIsEmpty' | 186 | { | 187 | return b->empty; | | ~ | | | | | (168) dereference of NULL 'b_2(D)' | make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc/examples' Making all in scripts make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc/scripts' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc/scripts' Making all in credentials make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc/credentials' Making all in srp make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc/credentials/srp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc/credentials/srp' Making all in x509 make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc/credentials/x509' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc/credentials/x509' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc/credentials' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc/credentials' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc/credentials' Making all in latex make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc/latex' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc/latex' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/doc' make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.9' ==> Starting check()... Making check in gl make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.9/gl' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/gl' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/gl' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/gl' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/gl' Making check in lib make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib' Making check in includes make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/includes' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/includes' Making check in x509 make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/x509' make check-am make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/x509' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/x509' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/x509' Making check in auth make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/auth' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/auth' Making check in ext make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/ext' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/ext' Making check in algorithms make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/algorithms' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/algorithms' Making check in extras make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/extras' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/extras' Making check in accelerated make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/accelerated' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/accelerated' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/accelerated' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/accelerated' Making check in nettle make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib/nettle' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib/nettle' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/lib' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/lib' Making check in extra make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.9/extra' Making check in includes make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/extra/includes' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/extra/includes' make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/extra' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/extra' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/extra' Making check in po make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.9/po' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/po' Making check in src/gl make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl' Making check in . make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl' Making check in tests make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make check-recursive make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' Making check in . make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' ## ---------------------------------------------------------------------- ## ## ---------------------------- Gnulib tests ---------------------------- ## ## Please report test failures in this directory to . ## ## ---------------------------------------------------------------------- ## make test-accept test-alignasof test-alloca-opt test-arpa_inet-h test-array_list test-assert test-binary-io test-bind test-bitrotate test-bool test-byteswap test-c-ctype test-c-strcasecmp test-c-strncasecmp test-calloc-gnu test-calloc-posix test-canonicalize-lgpl test-cloexec test-close test-connect test-ctype test-dup2 test-endian test-environ test-errno-h test-error test-explicit_bzero test-fcntl-h test-fcntl test-fdopen test-fgetc test-float-h test-fopen-gnu test-fopen test-fpending test-fputc test-fread test-free test-fseek test-fseeko test-fseeko3 test-fseeko4 test-fstat test-ftell test-ftell3 test-ftello test-ftello3 test-ftello4 test-ftruncate test-func test-fwrite test-getaddrinfo test-getcwd-lgpl test-getdelim test-getdtablesize test-getline test-getpeername test-getprogname test-gettext-h test-gettimeofday test-scratch-buffer test-hash test-htonl test-ignore-value test-inet_ntop test-inet_pton test-intprops test-inttostr test-inttypes-h test-ioctl test-isblank test-isnand-nolibm test-isnanf-nolibm test-isnanl-nolibm test-langinfo-h test-largefile test-limits-h test-linked_list test-linkedhash_list test-listen test-locale-h test-localename test-rwlock1 test-lock test-lseek test-lstat test-malloc-gnu test-malloc-posix test-malloca test-math-h test-memchr test-memset_explicit test-nanosleep test-netdb-h test-netinet_in-h test-once1 test-once2 test-open test-parse-datetime test-pathmax test-perror test-perror2 test-pipe test-pselect test-pthread-cond test-pthread test-pthread-mutex test-pthread-mutex-type test-pthread-once1 test-pthread-once2 test-pthread-rwlock test-pthread-thread test-pthread_sigmask1 test-pthread_sigmask2 test-putenv test-raise test-random test-random-mt test-random_r test-rawmemchr test-read-file test-readlink test-realloc-posix test-reallocarray test-recv test-recvfrom test-sched-h test-select test-select-fd test-select-stdin test-send test-sendto test-servent test-setenv test-setlocale_null test-setlocale_null-mt-one test-setlocale_null-mt-all test-setlocale_null-unlocked test-setlocale1 test-setlocale2 test-setlocale-w32 test-setsockopt test-shutdown test-signal-h test-signbit test-sigprocmask test-sleep test-snprintf test-sockets test-stat test-stat-time test-stdckdint-h test-stddef-h test-stdint-h test-stdio-h test-stdlib-h test-str_endswith test-str_startswith test-strerror test-strerror_r test-string-h test-strings-h test-strndup test-strnlen test-strverscmp test-symlink test-sys_ioctl-h test-sys_select-h test-sys_socket-h test-sys_stat-h test-sys_time-h test-sys_types-h test-sys_uio-h test-thread_self test-thread_create test-time-h test-time test-gmtime_r test-gmtime_r-mt test-localtime_r test-localtime_r-mt test-timespec test-tls test-unistd-h test-unsetenv test-usleep test-vasnprintf test-vasprintf test-verify test-vsnprintf test-wchar-h test-windows-mutex-type test-windows-recmutex-type test-windows-timedmutex-type test-windows-timedrecmutex-type test-xalloc-die libtests.a make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' CC test-accept.o CC gl_array_list.o CC concat-filename.o CC binary-io.o CC dtotimespec.o CC endian.o CC hash-pjw.o CC imaxtostr.o CC inttostr.o CC offtostr.o CC uinttostr.o CC umaxtostr.o CC ioctl.o CC localename.o CC localename-unsafe.o CC localename-table.o CC math.o CC nanosleep.o CC pthread-rwlock.o CC same-inode.o CC setlocale_null.o CC setlocale_null-unlocked.o CC str_endswith.o CC str_startswith.o CC time.o CC timespec-add.o CC timespec-sub.o CC vma-iter.o CC xconcat-filename.o CC xgetcwd.o CC strerror_r.o CC test-alignasof.o CC test-alloca-opt.o CC test-arpa_inet-h.o CC test-array_list.o CC test-assert.o CC test-binary-io.o CC test-bind.o CC test-bitrotate.o CC test-bool.o CC test-byteswap.o CC test-c-ctype.o CC test-c-strcasecmp.o CC test-c-strncasecmp.o CC test-calloc-gnu.o CC test-calloc-posix.o CC test-canonicalize-lgpl.o CC test-cloexec.o CC test-close.o CC test-connect.o CC test-ctype.o CC test-dup2.o CC test-endian.o CC test-environ.o CC test-errno-h.o CC test-error.o CC test-explicit_bzero.o CC test-fcntl-h.o CC test-fcntl.o CC test-fdopen.o CC test-fgetc.o CC test-float-h.o CC test-fopen-gnu.o CC test-fopen.o CC test-fpending.o CC test-fputc.o CC test-fread.o CC test-free.o CC test-fseek.o CC test-fseeko.o CC test-fseeko3.o CC test-fseeko4.o CC test-fstat.o CC test-ftell.o CC test-ftell3.o CC test-ftello.o CC test-ftello3.o CC test-ftello4.o CC test-ftruncate.o CC test-func.o CC test-fwrite.o CC test-getaddrinfo.o CC test-getcwd-lgpl.o CC test-getdelim.o CC test-getdtablesize.o CC test-getline.o CC test-getpeername.o CC test-getprogname.o CC test-gettext-h.o CC test-gettimeofday.o CC test-scratch-buffer.o CC test-hash.o CC test-htonl.o CC test-ignore-value.o CC test-inet_ntop.o CC test-inet_pton.o CC test-intprops.o CC test-inttostr.o CC test-inttypes-h.o CC test-ioctl.o CC test-isblank.o CC test-isnand-nolibm.o CC test-isnanf-nolibm.o CC test-isnanl-nolibm.o CC test-langinfo-h.o CC test-largefile.o CC test-limits-h.o CC test-linked_list.o CC test-linkedhash_list.o CC test-listen.o CC test-locale-h.o CC test-localename.o CC test-rwlock1.o CC test-lock.o CC test-lseek.o CC test-lstat.o CC test-malloc-gnu.o CC test-malloc-posix.o CC test-malloca.o CC test-math-h.o CC test-memchr.o CC test-memset_explicit.o CC test-nanosleep.o CC test-netdb-h.o CC test-netinet_in-h.o CC test-once.o CC test-open.o CC test-parse-datetime.o CC test-pathmax.o CC test-perror.o CC test-perror2.o CC test-pipe.o CC test-pselect.o CC test-pthread-cond.o CC test-pthread.o CC test-pthread-mutex.o CC test-pthread-mutex-type.o CC test-pthread-once1.o CC test-pthread-once2.o CC test-pthread-rwlock.o CC test-pthread-thread.o CC test-pthread_sigmask1.o CC test-pthread_sigmask2.o CC test-putenv.o CC test-raise.o CC test-random.o CC test-random-mt.o CC test-random_r.o CC test-rawmemchr.o CC test-read-file.o CC test-readlink.o CC test-realloc-posix.o CC test-reallocarray.o CC test-recv.o CC test-recvfrom.o CC test-sched-h.o CC test-select.o CC test-select-fd.o CC test-select-stdin.o CC test-send.o CC test-sendto.o CC test-servent.o CC test-setenv.o CC test-setlocale_null.o CC test-setlocale_null-mt-one.o CC test-setlocale_null-mt-all.o CC test-setlocale_null-unlocked.o CC test-setlocale1.o CC test-setlocale2.o CC test-setlocale-w32.o CC test-setsockopt.o CC test-shutdown.o CC test-signal-h.o CC test-signbit.o CC test-sigprocmask.o CC test-sleep.o CC test-snprintf.o CC test-sockets.o CC test-stat.o CC test-stat-time.o CC test-stdckdint-h.o CC test-stddef-h.o CC test-stdint-h.o CC test-stdio-h.o CC test-stdlib-h.o CC test-str_endswith.o CC test-str_startswith.o CC test-strerror.o CC test-strerror_r.o CC test-string-h.o CC test-strings-h.o CC test-strndup.o CC test-strnlen.o CC test-strverscmp.o CC test-symlink.o CC test-sys_ioctl-h.o CC test-sys_select-h.o CC test-sys_socket-h.o CC test-sys_stat-h.o CC test-sys_time-h.o CC test-sys_types-h.o CC test-sys_uio-h.o CC test-thread_self.o CC test-thread_create.o CC test-time-h.o CC test-time.o CC test-gmtime_r.o CC test-gmtime_r-mt.o CC test-localtime_r.o CC test-localtime_r-mt.o CC test-timespec.o CC test-tls.o CC test-unistd-h.o CC test-unsetenv.o CC test-usleep.o CC test-vasnprintf.o CC test-vasprintf.o CC test-verify.o CC test-vsnprintf.o CC test-wchar-h.o CC test-windows-mutex-type.o CC test-windows-recmutex-type.o CC test-windows-timedmutex-type.o CC test-windows-timedrecmutex-type.o CC test-xalloc-die.o CC glthread/thread.o AR libtests.a CCLD test-accept CCLD test-alignasof CCLD test-alloca-opt CCLD test-arpa_inet-h CCLD test-array_list CCLD test-assert CCLD test-binary-io CCLD test-bind CCLD test-bitrotate CCLD test-bool CCLD test-byteswap CCLD test-c-ctype CCLD test-c-strcasecmp CCLD test-c-strncasecmp CCLD test-calloc-gnu CCLD test-calloc-posix CCLD test-canonicalize-lgpl CCLD test-cloexec CCLD test-close CCLD test-connect CCLD test-ctype CCLD test-dup2 CCLD test-endian CCLD test-environ CCLD test-errno-h CCLD test-error CCLD test-explicit_bzero CCLD test-fcntl-h CCLD test-fcntl CCLD test-fdopen CCLD test-fgetc CCLD test-float-h CCLD test-fopen-gnu CCLD test-fopen CCLD test-fpending CCLD test-fputc CCLD test-fread CCLD test-free CCLD test-fseek CCLD test-fseeko CCLD test-fseeko3 CCLD test-fseeko4 CCLD test-fstat CCLD test-ftell CCLD test-ftell3 CCLD test-ftello CCLD test-ftello3 CCLD test-ftello4 CCLD test-ftruncate CCLD test-func CCLD test-fwrite CCLD test-getaddrinfo CCLD test-getcwd-lgpl CCLD test-getdelim CCLD test-getdtablesize CCLD test-getline CCLD test-getpeername CCLD test-getprogname CCLD test-gettext-h CCLD test-gettimeofday CCLD test-scratch-buffer CCLD test-hash CCLD test-htonl CCLD test-ignore-value CCLD test-inet_ntop CCLD test-inet_pton CCLD test-intprops CCLD test-inttostr CCLD test-inttypes-h CCLD test-ioctl CCLD test-isblank CCLD test-isnand-nolibm CCLD test-isnanf-nolibm CCLD test-isnanl-nolibm CCLD test-langinfo-h CCLD test-largefile CCLD test-limits-h CCLD test-linked_list CCLD test-linkedhash_list CCLD test-listen CCLD test-locale-h CCLD test-localename CCLD test-rwlock1 CCLD test-lock CCLD test-lseek CCLD test-lstat CCLD test-malloc-gnu CCLD test-malloc-posix CCLD test-malloca CCLD test-math-h CCLD test-memchr CCLD test-memset_explicit CCLD test-nanosleep CCLD test-netdb-h CCLD test-netinet_in-h CCLD test-once1 CCLD test-once2 CCLD test-open CCLD test-parse-datetime CCLD test-pathmax CCLD test-perror CCLD test-perror2 CCLD test-pipe CCLD test-pselect CCLD test-pthread-cond CCLD test-pthread CCLD test-pthread-mutex CCLD test-pthread-mutex-type CCLD test-pthread-once1 CCLD test-pthread-once2 CCLD test-pthread-rwlock CCLD test-pthread-thread CCLD test-pthread_sigmask1 CCLD test-pthread_sigmask2 CCLD test-putenv CCLD test-raise CCLD test-random CCLD test-random-mt CCLD test-random_r CCLD test-rawmemchr CCLD test-read-file CCLD test-readlink CCLD test-realloc-posix CCLD test-reallocarray CCLD test-recv CCLD test-recvfrom CCLD test-sched-h CCLD test-select CCLD test-select-fd CCLD test-select-stdin CCLD test-send CCLD test-sendto CCLD test-servent CCLD test-setenv CCLD test-setlocale_null CCLD test-setlocale_null-mt-one CCLD test-setlocale_null-mt-all CCLD test-setlocale_null-unlocked CCLD test-setlocale1 CCLD test-setlocale2 CCLD test-setlocale-w32 CCLD test-setsockopt CCLD test-shutdown CCLD test-signal-h CCLD test-signbit CCLD test-sigprocmask CCLD test-sleep CCLD test-snprintf CCLD test-sockets CCLD test-stat CCLD test-stat-time CCLD test-stdckdint-h CCLD test-stddef-h CCLD test-stdint-h CCLD test-stdio-h CCLD test-stdlib-h CCLD test-str_endswith CCLD test-str_startswith CCLD test-strerror CCLD test-strerror_r CCLD test-string-h CCLD test-strings-h CCLD test-strndup CCLD test-strnlen CCLD test-strverscmp CCLD test-symlink CCLD test-sys_ioctl-h CCLD test-sys_select-h CCLD test-sys_socket-h CCLD test-sys_stat-h CCLD test-sys_time-h CCLD test-sys_types-h CCLD test-sys_uio-h CCLD test-thread_self CCLD test-thread_create CCLD test-time-h CCLD test-time CCLD test-gmtime_r CCLD test-gmtime_r-mt CCLD test-localtime_r CCLD test-localtime_r-mt CCLD test-timespec CCLD test-tls CCLD test-unistd-h CCLD test-unsetenv CCLD test-usleep CCLD test-vasnprintf CCLD test-vasprintf CCLD test-verify CCLD test-vsnprintf CCLD test-wchar-h CCLD test-windows-mutex-type CCLD test-windows-recmutex-type CCLD test-windows-timedmutex-type CCLD test-windows-timedrecmutex-type make[6]: 'libtests.a' is up to date. CCLD test-xalloc-die make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make check-TESTS make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[7]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' PASS: test-arpa_inet-h PASS: test-accept PASS: test-alignasof PASS: test-assert PASS: test-array_list PASS: test-binary-io.sh PASS: test-bind PASS: test-bitrotate PASS: test-byteswap PASS: test-bool PASS: test-c-ctype PASS: test-calloc-gnu PASS: test-c-strcase.sh PASS: test-calloc-posix PASS: test-close PASS: test-cloexec PASS: test-canonicalize-lgpl PASS: test-connect PASS: test-dup2 PASS: test-ctype PASS: test-errno-h PASS: test-endian PASS: test-environ PASS: test-fcntl-h PASS: test-explicit_bzero PASS: test-fcntl PASS: test-fdopen PASS: test-alloca-opt PASS: test-fgetc PASS: test-float-h PASS: test-fopen-gnu PASS: test-fopen PASS: test-fputc PASS: test-fpending.sh PASS: test-fseek.sh PASS: test-fread PASS: test-fseek2.sh PASS: test-error.sh PASS: test-fseeko.sh PASS: test-fseeko2.sh PASS: test-fseeko3.sh PASS: test-fstat PASS: test-fseeko4.sh PASS: test-ftell.sh PASS: test-ftell2.sh PASS: test-ftell3 PASS: test-ftello.sh PASS: test-ftello2.sh PASS: test-ftello3 PASS: test-ftello4.sh PASS: test-ftruncate.sh PASS: test-func PASS: test-fwrite PASS: test-getcwd-lgpl PASS: test-getdtablesize PASS: test-getdelim PASS: test-getline PASS: test-getpeername PASS: test-getprogname PASS: test-gettimeofday PASS: test-gettext-h PASS: test-scratch-buffer PASS: test-htonl PASS: test-ignore-value PASS: test-inet_ntop PASS: test-getaddrinfo PASS: test-inet_pton PASS: test-intprops PASS: test-inttostr PASS: test-inttypes-h PASS: test-ioctl PASS: test-isnand-nolibm PASS: test-isblank PASS: test-isnanf-nolibm PASS: test-isnanl-nolibm PASS: test-langinfo-h PASS: test-largefile PASS: test-limits-h PASS: test-linked_list PASS: test-linkedhash_list PASS: test-listen PASS: test-locale-h PASS: test-localename PASS: test-rwlock1 PASS: test-free PASS: test-lseek.sh PASS: test-lstat PASS: test-malloc-gnu PASS: test-malloc-posix PASS: test-math-h PASS: test-malloca PASS: test-memset_explicit PASS: test-nanosleep PASS: test-netdb-h PASS: test-netinet_in-h PASS: test-once1 PASS: test-once2 PASS: test-open PASS: test-parse-datetime PASS: test-pathmax PASS: test-hash PASS: test-perror.sh PASS: test-perror2 PASS: test-pipe PASS: test-pselect PASS: test-pthread PASS: test-pthread-cond PASS: test-pthread-mutex-type PASS: test-pthread-once1 PASS: test-memchr PASS: test-pthread-mutex PASS: test-pthread-thread PASS: test-pthread-rwlock PASS: test-pthread_sigmask1 PASS: test-putenv PASS: test-raise PASS: test-pthread_sigmask2 PASS: test-random PASS: test-random_r PASS: test-rawmemchr PASS: test-read-file PASS: test-readlink PASS: test-realloc-posix PASS: test-reallocarray PASS: test-recv PASS: test-recvfrom PASS: test-sched-h PASS: test-select PASS: test-select-in.sh PASS: test-random-mt PASS: test-send PASS: test-sendto PASS: test-servent PASS: test-setenv PASS: test-select-out.sh PASS: test-setlocale_null SKIP: test-setlocale_null-mt-one PASS: test-setlocale_null-unlocked SKIP: test-setlocale_null-mt-all SKIP: test-setlocale1.sh SKIP: test-setlocale-w32 PASS: test-setsockopt PASS: test-shutdown PASS: test-setlocale2.sh PASS: test-signal-h PASS: test-signbit PASS: test-sleep PASS: test-sigprocmask PASS: test-snprintf PASS: test-sockets PASS: test-stat PASS: test-stdckdint-h PASS: test-stat-time PASS: test-stddef-h PASS: test-stdio-h PASS: test-stdint-h PASS: test-str_endswith PASS: test-stdlib-h PASS: test-str_startswith PASS: test-strerror PASS: test-string-h PASS: test-strerror_r PASS: test-strings-h PASS: test-strndup PASS: test-strverscmp PASS: test-symlink PASS: test-sys_ioctl-h PASS: test-strnlen PASS: test-sys_select-h PASS: test-sys_socket-h PASS: test-sys_stat-h PASS: test-sys_time-h PASS: test-sys_types-h PASS: test-sys_uio-h PASS: test-thread_self PASS: test-thread_create PASS: test-time-h PASS: test-time PASS: test-init.sh PASS: test-gmtime_r PASS: test-localtime_r PASS: test-gmtime_r-mt PASS: test-localtime_r-mt PASS: test-timespec PASS: test-unistd-h PASS: test-unsetenv PASS: test-usleep PASS: test-vasnprintf PASS: test-vasprintf PASS: test-verify PASS: test-tls PASS: test-vsnprintf PASS: test-wchar-h SKIP: test-windows-mutex-type SKIP: test-windows-recmutex-type SKIP: test-windows-timedmutex-type SKIP: test-windows-timedrecmutex-type PASS: test-xalloc-die.sh PASS: test-verify.sh PASS: test-pthread-once2 PASS: test-lock ============================================================================ Testsuite summary for GnuTLS 3.8.9 ============================================================================ # TOTAL: 201 # PASS: 193 # SKIP: 8 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[7]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl/tests' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src/gl' Making check in src make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src' make check-am make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/src' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/src' Making check in tests make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests' Making check in . make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests' make tls13/supported_versions tls13/tls12-no-tls13-exts tls13/post-handshake-with-cert tls13/post-handshake-without-cert tls13/cookie tls13/key_share tls13/prf tls13/prf-early tls13/post-handshake-with-cert-ticket tls12-rollback-detection tls11-rollback-detection tls12-check-rollback-val tls11-check-rollback-val tls13/post-handshake-with-psk tls13/post-handshake-with-cert-auto tls13/anti_replay tls13/compress-cert tls13/compress-cert-neg tls13/compress-cert-neg2 tls13/compress-cert-cli tls13/hello_retry_request tls13/hello_retry_request_resume tls13/psk-ext tls13/key_update tls13/key_update_multiple tls13/key_limits tls13/multi-ocsp tls13/ocsp-client tls13/change_cipher_spec tls13-cipher-neg tls13/no-psk-exts tls13/psk-dumbfw tls13/psk-ke-modes tls13-early-start tls13/no-auto-send-ticket mini-record-2 simple gnutls_hmac_fast set_pkcs12_cred cert certuniqueid tls-neg-ext-key mpi certificate_set_x509_crl dn parse_ca x509-dn x509-dn-decode record-sizes hostname-check cve-2008-4989 pkcs12_s2k chainverify missingissuer missingissuer_aia record-sizes-range crq_key_id x509sign-verify sign-verify cve-2009-1415 cve-2009-1416 tls10-server-kx-neg tls11-server-kx-neg tls12-server-kx-neg ssl30-server-kx-neg tls12-cipher-neg tls11-cipher-neg tls10-cipher-neg ssl30-cipher-neg crq_apis init_roundtrip pkcs12_s2k_pem dn2 tls12-rehandshake-cert-3 nul-in-x509-names x509_altname pkcs12_encode mini-x509 gnutls_session_set_id rng-fork mini-eagain-dtls resume-dtls empty_retrieve_function tls13-rehandshake-cert gnutls_ext_raw_parse handshake-large-cert x509cert x509cert-tl x509cert-ct infoaccess mini-dtls-hello-verify sign-verify-ed25519-rfc8080 trustdb-tofu dtls-rehandshake-anon mini-alpn mini-dtls-large mini-termination mini-x509-cas mini-x509-2 pkcs12_simple mini-emsgsize-dtls chainverify-unsorted mini-overhead tls12-ffdhe mini-dtls-heartbeat mini-x509-callbacks key-openssl priorities priorities-groups gnutls_x509_privkey_import gnutls_x509_crt_list_import time x509-server-verify sign-verify-ext4 tls-neg-ext4-key resume-lifetime mini-dtls-srtp rsa-encrypt-decrypt mini-loss-time gnutls-strcodes mini-record mini-dtls-record handshake-timeout mini-record-range cert-status rsa-psk global-init sec-params sign-verify-data fips-test fips-override-test mini-global-load name-constraints x509-extensions long-session-id mini-x509-callbacks-intr mini-dtls-lowmtu set_x509_key_file-late crlverify mini-dtls-discard mini-record-failure openconnect-dtls12 tls12-rehandshake-cert-2 custom-urls set_x509_key_mem set_x509_key_file tls12-rehandshake-cert-auto tls12-rehandshake-set-prio mini-chain-unsorted x509-verify-duplicate x509-verify-with-crl mini-dtls-mtu privkey-verify-broken mini-dtls-record-asym key-import-export priority-set priority-set2 pubkey-import-export sign-is-secure spki spki-abstract rsa-rsa-oaep rsa-rsa-pss mini-dtls-fork mini-key-material x509cert-invalid tls-ext-register tls-supplemental mini-dtls0-9 duplicate-extensions record-retvals mini-server-name tls-etm tls-force-etm x509-cert-callback alerts client-sign-md5-rep tls12-invalid-key-exchanges session-rdn-read tls13-cert-key-exchange x509-cert-callback-ocsp gnutls_ocsp_resp_list_import2 server-sign-md5-rep privkey-keygen mini-tls-nonblock no-signal pkcs7-gen dtls-etm x509sign-verify-rsa x509sign-verify-ecdsa x509sign-verify-gost cipher-alignment oids atfork prf psk-file priority-init2 post-client-hello-change-prio status-request status-request-ok rfc7633-missing sign-verify-ext fallback-scsv pkcs8-key-decode urls dtls-rehandshake-cert rfc7633-ok key-usage-rsa key-usage-ecdhe-rsa mini-session-verify-function auto-verify record-timeouts mini-dtls-hello-verify-48 set-default-prio tls12-anon-upgrade tlsext-decoding rsa-psk-cb gnutls-ids rehandshake-switch-cert rehandshake-switch-cert-allow rehandshake-switch-cert-client rehandshake-switch-cert-client-allow handshake-versions dtls-handshake-versions dtls-max-record tls12-max-record alpn-server-prec ocsp-filename-memleak dh-params rehandshake-ext-secret pcert-list session-export-funcs handshake-false-start version-checks key-material-dtls key-material-set-dtls name-constraints-merge crl-basic crq-basic send-client-cert custom-urls-override hex rehandshake-switch-psk-id rehandshake-switch-srp-id base64 srpbase64 pkcs1-digest-info set_x509_key set_x509_key_file_der set_x509_pkcs12_key crt_apis tls12-cert-key-exchange tls11-cert-key-exchange tls10-cert-key-exchange ssl30-cert-key-exchange dtls12-cert-key-exchange dtls10-cert-key-exchange x509-cert-callback-legacy keylog-env ssl2-hello tlsfeature-ext dtls-rehandshake-cert-2 dtls-session-ticket-lost tlsfeature-crt dtls-rehandshake-cert-3 resume-with-false-start set_x509_key_file_ocsp client-fastopen rng-sigint srp safe-renegotiation/srn0 safe-renegotiation/srn1 safe-renegotiation/srn2 safe-renegotiation/srn3 safe-renegotiation/srn4 safe-renegotiation/srn5 rsa-illegal-import set_x509_ocsp_multi_invalid set_key set_x509_key_file_ocsp_multi2 set_x509_ocsp_multi_unknown set_x509_ocsp_multi_pem tls-ext-not-in-dtls set_key_utf8 set_x509_key_utf8 insecure_key handshake-large-packet client_dsa_key server_ecdsa_key tls-session-ext-register tls-session-supplemental multi-alerts naked-alerts pkcs7-cat-parse set_known_dh_params_x509 set_known_dh_params_anon set_known_dh_params_psk session-tickets-ok session-tickets-missing set_x509_key_file_legacy status-request-ext gnutls_x509_crt_sign gnutls_x509_crq_sign dtls-repro-20170915 rng-no-onload dtls1-2-mtu-check crl_apis cert_verify_inv_utf8 no-extensions no-status-request hostname-check-utf8 pkcs8-key-decode-encrypted priority-mix pkcs7 send-data-before-handshake recv-data-before-handshake crt_inv_write x509sign-verify-error rng-op-nonce rng-op-random rng-op-key x509-dn-decode-compat ip-check mini-x509-ipaddr trust-store base64-raw random-art dhex509self dss-sig-val sign-pk-api tls-session-ext-override record-pad tls13-server-kx-neg gnutls_ext_raw_parse_dtls key-export-pkcs8 null_retrieve_function tls-record-size-limit tls-crt_type-neg resume-with-stek-expiration resume-with-previous-stek rawpk-api tls-record-size-limit-asym dh-compute ecdh-compute sign-verify-data-newapi sign-verify-newapi sign-verify-deterministic iov aead-cipher-vec tls13-without-timeout-func buffer status-request-revoked set_x509_ocsp_multi_cli kdf-api keylog-func handshake-write x509cert-dntypes id-on-xmppAddr tls13-compat-mode ciphersuite-name x509-upnconstraint xts-key-check cipher-padding pkcs7-verify-double-free fips-rsa-sizes tls12-rehandshake-ticket pathbuf tls-force-ems psk-importer privkey-derive dh-compute2 ecdh-compute2 tls-channel-binding strict-der system-prio-file tls-pthread fips-mode-pthread dtls-pthread rng-pthread pkcs11-cert-import-url-exts pkcs11-get-exts pkcs11-get-raw-issuer-exts pkcs11-cert-import-url4-exts pkcs11/pkcs11-chainverify pkcs11/pkcs11-get-issuer pkcs11/pkcs11-is-known pkcs11/pkcs11-combo pkcs11/pkcs11-privkey pkcs11/pkcs11-pubkey-import-rsa pkcs11/pkcs11-pubkey-import-ecdsa pkcs11-import-url-privkey pkcs11-privkey-fork pkcs11/pkcs11-ec-privkey-test pkcs11-privkey-always-auth pkcs11-privkey-export pkcs11/pkcs11-import-with-pin pkcs11/pkcs11-privkey-pthread pkcs11/pkcs11-pin-func pkcs11/pkcs11-obj-import pkcs11-privkey-fork-reinit pkcs11-mechanisms pkcs11-privkey-safenet-always-auth pkcs11/pkcs11-rsa-pss-privkey-test pkcs11/tls-neg-pkcs11-key pkcs11/pkcs11-privkey-generate pkcs11/gnutls_x509_crt_list_import_url pkcs11/gnutls_pcert_list_import_x509_file pkcs11/pkcs11-eddsa-privkey-test pkcs11-token-raw pkcs11-obj-raw pkcs11-import-url-privkey-caps ocsp openssl x509self x509dn anonself pskself pskself2 dhepskself setcredcrash tls12-resume-x509 tls12-resume-psk tls12-resume-anon tls13-resume-x509 tls13-resume-psk tls13-early-data tls13-early-data-neg tls13-early-data-neg2 resume-with-record-size-limit record-sendfile tls13/post-handshake-with-cert-pkcs11 pkcs11/tls-neg-pkcs11-no-key global-init-override pkcs11/distrust-after system-override-hash system-override-sig system-override-sig-tls gnutls_ktls dtls-stress system-override-curves-allowlist protocol-set-allowlist rsaes-pkcs1-v1_5 pkcs11/list-tokens pkcs11/list-objects \ rfc2253-escape-test.sh rsa-md5-collision/rsa-md5-collision.sh systemkey.sh tpm2.sh ktls.sh dtls/dtls.sh dtls/dtls-resume.sh fastopen.sh pkgconfig.sh starttls.sh starttls-ftp.sh starttls-smtp.sh starttls-lmtp.sh starttls-pop3.sh starttls-xmpp.sh starttls-nntp.sh starttls-sieve.sh ocsp-tests/ocsp-tls-connection.sh ocsp-tests/ocsp-must-staple-connection.sh ocsp-tests/ocsp-test.sh cipher-listings.sh sni-hostname.sh server-multi-keys.sh psktool.sh ocsp-tests/ocsp-load-chain.sh gnutls-cli-save-data.sh gnutls-cli-debug.sh sni-resume.sh ocsp-tests/ocsptool.sh cert-reencoding.sh pkcs7-cat.sh long-crl.sh serv-udp.sh logfile-option.sh gnutls-cli-resume.sh profile-tests.sh server-weak-keys.sh ocsp-tests/ocsp-signer-verify.sh cfg-test.sh sanity-lib.sh system-override-sig.sh system-override-hash.sh system-override-versions.sh system-override-invalid.sh system-override-curves.sh system-override-profiles.sh system-override-tls.sh system-override-kx.sh system-override-default-priority-string.sh system-override-sig-tls.sh system-override-hash-filters-prf.sh system-override-sig-allowlist.sh system-override-hash-allowlist.sh system-override-versions-allowlist.sh system-override-curves-allowlist.sh system-override-special-allowlist.sh protocol-set-allowlist.sh system-override-allow-rsa-pkcs1-encrypt.sh gnutls-cli-self-signed.sh gnutls-cli-invalid-crl.sh gnutls-cli-rawpk.sh dh-fips-approved.sh p11-kit-trust.sh testpkcs11.sh certtool-pkcs11.sh pkcs11-tool.sh p11-kit-load.sh pqc-hybrid-kx.sh make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests' CC tls13-cipher-neg.o CC tls13-early-start.o CC tls13/no-auto-send-ticket.o CC mini-record-2.o CC simple.o CC gnutls_hmac_fast.o CC set_pkcs12_cred.o CC cert.o CC certuniqueid.o CC tls-neg-ext-key.o CC mpi-mpi.o CC certificate_set_x509_crl.o CC dn.o CC parse_ca.o CC x509-dn.o CC x509-dn-decode.o CC record-sizes.o CC hostname-check.o CC cve-2008-4989.o CC pkcs12_s2k-pkcs12_s2k.o CC chainverify.o CC missingissuer.o CC missingissuer_aia.o CC record-sizes-range.o CC crq_key_id.o CC x509sign-verify.o CC sign-verify.o CC cve-2009-1415.o CC cve-2009-1416.o CC tls10-server-kx-neg.o CC tls11-server-kx-neg.o CC tls12-server-kx-neg.o CC ssl30-server-kx-neg.o CC tls12-cipher-neg.o CC tls11-cipher-neg.o CC tls10-cipher-neg.o CC ssl30-cipher-neg.o CC crq_apis.o CC init_roundtrip.o CC pkcs12_s2k_pem.o CC dn2.o CC tls12-rehandshake-cert-3.o CC nul-in-x509-names.o CC x509_altname.o CC pkcs12_encode.o CC mini-x509.o CC gnutls_session_set_id.o CC rng-fork.o CC mini-eagain-dtls.o CC resume-dtls.o CC empty_retrieve_function.o CC tls13-rehandshake-cert.o CC gnutls_ext_raw_parse.o CC handshake-large-cert.o CC x509cert.o CC x509cert-tl.o CC x509cert-ct.o CC infoaccess.o CC mini-dtls-hello-verify.o CC sign-verify-ed25519-rfc8080.o CC trustdb-tofu.o CC dtls-rehandshake-anon.o CC mini-alpn.o CC mini-dtls-large.o CC mini-termination.o CC mini-x509-cas.o CC mini-x509-2.o CC pkcs12_simple.o CC mini-emsgsize-dtls.o CC chainverify-unsorted.o CC mini-overhead.o CC tls12-ffdhe.o CC mini-dtls-heartbeat.o CC mini-x509-callbacks.o CC key-openssl.o CC priorities.o CC priorities-groups.o CC gnutls_x509_privkey_import.o CC gnutls_x509_crt_list_import.o CC time.o CC x509-server-verify.o CC sign-verify-ext4.o CC tls-neg-ext4-key.o CC resume-lifetime.o CC mini-dtls-srtp.o CC rsa-encrypt-decrypt.o CC mini-loss-time.o CC gnutls-strcodes.o CC mini-record.o CC mini-dtls-record.o CC handshake-timeout.o CC mini-record-range.o CC cert-status.o CC rsa-psk.o CC global-init.o CC sec-params.o CC sign-verify-data.o CC fips-test.o CC fips-override-test.o CC mini-global-load.o CC name-constraints.o CC x509-extensions.o CC long-session-id.o CC mini-x509-callbacks-intr.o CC mini-dtls-lowmtu.o CC set_x509_key_file-late.o CC crlverify.o CC mini-dtls-discard.o CC mini-record-failure.o CC openconnect-dtls12.o CC tls12-rehandshake-cert-2.o CC custom-urls.o CC set_x509_key_mem.o CC set_x509_key_file.o CC tls12-rehandshake-cert-auto.o CC tls12-rehandshake-set-prio.o CC mini-chain-unsorted.o CC x509-verify-duplicate.o CC x509-verify-with-crl.o CC mini-dtls-mtu.o CC privkey-verify-broken.o CC mini-dtls-record-asym.o CC key-import-export.o CC priority-set.o CC priority-set2.o CC pubkey-import-export.o CC sign-is-secure.o CC spki.o CC spki-abstract.o CC rsa-rsa-oaep.o CC rsa-rsa-pss.o CC mini-dtls-fork.o CC mini-key-material.o CC x509cert-invalid.o CC tls-ext-register.o CC tls-supplemental.o CC mini-dtls0-9.o CC duplicate-extensions.o CC record-retvals.o CC mini-server-name.o CC tls-etm.o CC tls-force-etm.o CC x509-cert-callback.o CC alerts.o CC client-sign-md5-rep.o CC tls12-invalid-key-exchanges.o CC session-rdn-read.o CC common-cert-key-exchange.o CC tls13-cert-key-exchange.o CC x509-cert-callback-ocsp.o CC gnutls_ocsp_resp_list_import2.o CC server-sign-md5-rep.o CC privkey-keygen.o CC mini-tls-nonblock.o CC no-signal.o CC pkcs7-gen.o CC dtls-etm.o CC x509sign-verify-rsa.o CC x509sign-verify-ecdsa.o CC x509sign-verify-gost.o CC cipher_alignment-cipher-alignment.o CC oids.o CC atfork-atfork.o CC prf.o CC psk-file.o CC priority-init2.o CC post-client-hello-change-prio.o CC status-request.o CC status-request-ok.o CC rfc7633-missing.o CC sign-verify-ext.o CC fallback-scsv.o CC pkcs8-key-decode.o CC urls.o CC dtls-rehandshake-cert.o CC rfc7633-ok.o CC key-usage-rsa.o CC key-usage-ecdhe-rsa.o CC mini-session-verify-function.o CC auto-verify.o CC record-timeouts.o CC mini-dtls-hello-verify-48.o CC set-default-prio.o CC tls12-anon-upgrade.o CC tlsext-decoding.o CC rsa-psk-cb.o CC gnutls-ids.o CC rehandshake-switch-cert.o CC rehandshake-switch-cert-allow.o CC rehandshake-switch-cert-client.o CC rehandshake-switch-cert-client-allow.o CC handshake-versions.o CC dtls-handshake-versions.o CC dtls-max-record.o CC tls12-max-record.o CC alpn-server-prec.o CC ocsp-filename-memleak.o CC dh-params.o CC rehandshake-ext-secret.o CC pcert-list.o CC session-export-funcs.o CC handshake-false-start.o CC version-checks.o CC key-material-dtls.o CC key-material-set-dtls.o CC name_constraints_merge-name-constraints-merge.o CC crl-basic.o CC crq-basic.o CC send-client-cert.o CC custom-urls-override.o CC hex.o CC rehandshake-switch-psk-id.o CC rehandshake-switch-srp-id.o CC base64.o CC srpbase64.o CC pkcs1-digest-info.o CC set_x509_key.o CC set_x509_key_file_der.o CC set_x509_pkcs12_key.o CC crt_apis.o CC tls12-cert-key-exchange.o CC tls11-cert-key-exchange.o CC tls10-cert-key-exchange.o CC ssl30-cert-key-exchange.o CC dtls12-cert-key-exchange.o CC dtls10-cert-key-exchange.o CC x509-cert-callback-legacy.o CC keylog-env.o CC ssl2-hello.o CC tlsfeature-ext.o keylog-env.c: In function 'doit': keylog-env.c:170:9: warning: ignoring return value of 'truncate' declared with attribute 'warn_unused_result' [-Wunused-result] 170 | truncate(filename, 0); | ^~~~~~~~~~~~~~~~~~~~~ CC dtls-rehandshake-cert-2.o CC dtls-session-ticket-lost.o CC tlsfeature-crt.o CC dtls-rehandshake-cert-3.o CC resume-with-false-start.o CC set_x509_key_file_ocsp.o CC client-fastopen.o CC rng-sigint.o CC srp.o CC rsa_illegal_import-rsa-illegal-import.o CC set_x509_ocsp_multi_invalid.o CC set_key.o CC set_x509_key_file_ocsp_multi2.o CC set_x509_ocsp_multi_unknown.o CC set_x509_ocsp_multi_pem.o CC tls-ext-not-in-dtls.o CC set_key_utf8.o CC set_x509_key_utf8.o CC insecure_key.o CC handshake-large-packet.o CC client_dsa_key.o CC server_ecdsa_key.o CC tls-session-ext-register.o CC tls-session-supplemental.o CC multi-alerts.o CC naked-alerts.o CC pkcs7-cat-parse.o CC set_known_dh_params_x509.o CC set_known_dh_params_anon.o CC set_known_dh_params_psk.o CC session-tickets-ok.o CC session-tickets-missing.o CC set_x509_key_file_legacy.o CC status-request-ext.o CC gnutls_x509_crt_sign.o CC gnutls_x509_crq_sign.o CC dtls-repro-20170915.o CC rng-no-onload.o CC dtls1-2-mtu-check.o CC crl_apis.o CC cert_verify_inv_utf8.o CC no-extensions.o CC no-status-request.o CC hostname-check-utf8.o CC pkcs8-key-decode-encrypted.o CC priority-mix.o CC pkcs7.o CC send-data-before-handshake.o CC recv-data-before-handshake.o CC crt_inv_write.o CC x509sign-verify-error.o CC rng-op-nonce.o CC rng-op-random.o CC rng-op-key.o CC x509-dn-decode-compat.o CC ip-check.o CC mini-x509-ipaddr.o CC trust-store.o CC base64-raw.o CC random-art.o CC dhex509self.o CC dss-sig-val.o CC sign-pk-api.o CC tls-session-ext-override.o CC record-pad.o CC tls13-server-kx-neg.o CC gnutls_ext_raw_parse_dtls.o CC key-export-pkcs8.o CC null_retrieve_function.o CC tls-record-size-limit.o CC tls-crt_type-neg.o CC resume-with-stek-expiration.o CC resume-with-previous-stek.o CC rawpk-api.o CC tls-record-size-limit-asym.o CC dh-compute.o CC ecdh-compute.o CC sign-verify-data-newapi.o CC sign-verify-newapi.o CC sign-verify-deterministic.o CC iov-iov.o CC aead-cipher-vec.o CC tls13-without-timeout-func.o CC buffer-buffer.o CC status-request-revoked.o CC set_x509_ocsp_multi_cli.o CC kdf-api.o CC keylog-func.o CC handshake-write.o CC x509cert-dntypes.o CC id-on-xmppAddr.o CC tls13-compat-mode.o CC ciphersuite-name.o CC x509-upnconstraint.o CC xts-key-check.o CC cipher-padding.o CC pkcs7-verify-double-free.o CC fips-rsa-sizes.o CC tls12-rehandshake-ticket.o CC pathbuf-pathbuf.o CC tls-force-ems.o CC psk-importer.o CC privkey-derive.o CC dh-compute2.o CC ecdh-compute2.o CC tls-channel-binding.o CC strict-der.o CC system-prio-file.o CC tls-pthread.o CC fips-mode-pthread.o CC dtls-pthread.o CC rng-pthread.o CC pkcs11/pkcs11-cert-import-url-exts.o CC pkcs11/pkcs11-get-exts.o CC pkcs11/pkcs11-get-raw-issuer-exts.o CC pkcs11/pkcs11-cert-import-url4-exts.o CC pkcs11/pkcs11-chainverify.o CC pkcs11/pkcs11-get-issuer.o CC pkcs11/pkcs11-is-known.o CC pkcs11/pkcs11-combo.o pkcs11/pkcs11-chainverify.c: In function 'doit': pkcs11/pkcs11-chainverify.c:111:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 111 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-chainverify.c:35: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-get-issuer.c: In function 'doit': pkcs11/pkcs11-get-issuer.c:133:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 133 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-get-issuer.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-is-known.c: In function 'doit': pkcs11/pkcs11-is-known.c:383:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 383 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-is-known.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-combo.c: In function 'doit': pkcs11/pkcs11-combo.c:250:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 250 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-combo.c:41: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-privkey.o CC pkcs11/pkcs11-pubkey-import-rsa.o CC pkcs11/pkcs11-pubkey-import-ecdsa.o CC pkcs11/pkcs11-import-url-privkey.o pkcs11/pkcs11-privkey.c: In function 'doit': pkcs11/pkcs11-privkey.c:156:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 156 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-privkey.c:36: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-privkey-fork.o In file included from pkcs11/pkcs11-pubkey-import-ecdsa.c:35: pkcs11/pkcs11-pubkey-import.c: In function 'try': pkcs11/pkcs11-pubkey-import.c:99:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 99 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-pubkey-import-rsa.c:34: pkcs11/pkcs11-pubkey-import.c: In function 'try': pkcs11/pkcs11-pubkey-import.c:99:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 99 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-pubkey-import-ecdsa.c:30: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-pubkey-import.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-ec-privkey-test.o CC pkcs11/pkcs11-privkey-always-auth.o CC pkcs11/pkcs11-privkey-export.o CC pkcs11/pkcs11-import-with-pin.o pkcs11/pkcs11-ec-privkey-test.c: In function 'doit': pkcs11/pkcs11-ec-privkey-test.c:108:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 108 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-ec-privkey-test.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-privkey-pthread.o CC pkcs11/pkcs11-pin-func.o CC pkcs11/pkcs11-obj-import.o pkcs11/pkcs11-import-with-pin.c: In function 'doit': pkcs11/pkcs11-import-with-pin.c:108:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 108 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-import-with-pin.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-privkey-fork-reinit.o CC pkcs11/pkcs11-mechanisms.o pkcs11/pkcs11-obj-import.c: In function 'doit': pkcs11/pkcs11-obj-import.c:99:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 99 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-obj-import.c:40: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-privkey-safenet-always-auth.o CC pkcs11/pkcs11-rsa-pss-privkey-test.o CC pkcs11/tls-neg-pkcs11-key.o CC pkcs11/pkcs11-privkey-generate.o CC pkcs11/gnutls_x509_crt_list_import_url.o pkcs11/pkcs11-rsa-pss-privkey-test.c: In function 'doit': pkcs11/pkcs11-rsa-pss-privkey-test.c:124:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 124 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-rsa-pss-privkey-test.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-privkey-generate.c: In function 'doit': pkcs11/pkcs11-privkey-generate.c:159:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 159 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-privkey-generate.c:50: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/gnutls_pcert_list_import_x509_file.o CC pkcs11/pkcs11-eddsa-privkey-test.o pkcs11/tls-neg-pkcs11-key.c: In function 'doit': pkcs11/tls-neg-pkcs11-key.c:454:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 454 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/tls-neg-pkcs11-key.c:45: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/gnutls_x509_crt_list_import_url.c: In function 'doit': pkcs11/gnutls_x509_crt_list_import_url.c:159:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 159 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/gnutls_x509_crt_list_import_url.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-token-raw.o pkcs11/gnutls_pcert_list_import_x509_file.c: In function 'doit': pkcs11/gnutls_pcert_list_import_x509_file.c:179:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 179 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/gnutls_pcert_list_import_x509_file.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-obj-raw.o CC pkcs11/import_url_privkey_caps-pkcs11-import-url-privkey.o pkcs11/pkcs11-eddsa-privkey-test.c: In function 'doit': pkcs11/pkcs11-eddsa-privkey-test.c:264:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 264 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-eddsa-privkey-test.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC ocsp.o CC openssl.o CC x509self.o CC x509dn.o CC anonself.o CC pskself.o CC pskself2.o CC dhepskself.o CC setcredcrash.o CC tls12_resume_x509-resume.o CC tls12_resume_psk-resume.o CC tls12_resume_anon-resume.o CC tls13_resume_x509-resume.o CC tls13_resume_psk-resume.o CC tls13-early-data.o CC tls13-early-data-neg.o CC tls13-early-data-neg2.o CC resume-with-record-size-limit.o CC record-sendfile.o CC tls13/post-handshake-with-cert-pkcs11.o CC pkcs11/tls-neg-pkcs11-no-key.o CC global-init-override.o CC pkcs11/distrust-after.o tls13/post-handshake-with-cert-pkcs11.c: In function 'doit': tls13/post-handshake-with-cert-pkcs11.c:460:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 460 | system(buf); | ^~~~~~~~~~~ In file included from tls13/post-handshake-with-cert-pkcs11.c:52: ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/tls-neg-pkcs11-no-key.c: In function 'doit': pkcs11/tls-neg-pkcs11-no-key.c:345:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 345 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/tls-neg-pkcs11-no-key.c:52: ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/distrust-after.c: In function 'doit': pkcs11/distrust-after.c:242:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 242 | system(buf); | ^~~~~~~~~~~ pkcs11/distrust-after.c:251:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 251 | system(buf); | ^~~~~~~~~~~ pkcs11/distrust-after.c:265:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 265 | system(buf); | ^~~~~~~~~~~ pkcs11/distrust-after.c:274:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 274 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/distrust-after.c:45: ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC system-override-hash.o CC system-override-sig.o CC system-override-sig-tls.o CC gnutls_ktls.o CC system-override-curves-allowlist.o CC protocol-set-allowlist.o CC rsaes-pkcs1-v1_5.o CC pkcs11/list-tokens.o protocol-set-allowlist.c: In function 'doit': protocol-set-allowlist.c:228:17: warning: ignoring return value of 'fgets' declared with attribute 'warn_unused_result' [-Wunused-result] 228 | fgets(cmd_buf, MAX_CMD_LEN, stdin); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[3]: Nothing to be done for 'rfc2253-escape-test.sh'. make[3]: Nothing to be done for 'rsa-md5-collision/rsa-md5-collision.sh'. make[3]: Nothing to be done for 'systemkey.sh'. make[3]: Nothing to be done for 'tpm2.sh'. make[3]: Nothing to be done for 'ktls.sh'. make[3]: Nothing to be done for 'dtls/dtls.sh'. make[3]: Nothing to be done for 'dtls/dtls-resume.sh'. make[3]: Nothing to be done for 'fastopen.sh'. make[3]: Nothing to be done for 'pkgconfig.sh'. make[3]: Nothing to be done for 'starttls.sh'. make[3]: Nothing to be done for 'starttls-ftp.sh'. make[3]: Nothing to be done for 'starttls-smtp.sh'. make[3]: Nothing to be done for 'starttls-lmtp.sh'. make[3]: Nothing to be done for 'starttls-pop3.sh'. make[3]: Nothing to be done for 'starttls-xmpp.sh'. make[3]: Nothing to be done for 'starttls-nntp.sh'. make[3]: Nothing to be done for 'starttls-sieve.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-tls-connection.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-must-staple-connection.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-test.sh'. make[3]: Nothing to be done for 'cipher-listings.sh'. make[3]: Nothing to be done for 'sni-hostname.sh'. make[3]: Nothing to be done for 'server-multi-keys.sh'. make[3]: Nothing to be done for 'psktool.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-load-chain.sh'. make[3]: Nothing to be done for 'gnutls-cli-save-data.sh'. make[3]: Nothing to be done for 'gnutls-cli-debug.sh'. make[3]: Nothing to be done for 'sni-resume.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsptool.sh'. make[3]: Nothing to be done for 'cert-reencoding.sh'. make[3]: Nothing to be done for 'pkcs7-cat.sh'. make[3]: Nothing to be done for 'long-crl.sh'. make[3]: Nothing to be done for 'serv-udp.sh'. make[3]: Nothing to be done for 'logfile-option.sh'. make[3]: Nothing to be done for 'gnutls-cli-resume.sh'. make[3]: Nothing to be done for 'profile-tests.sh'. make[3]: Nothing to be done for 'server-weak-keys.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-signer-verify.sh'. make[3]: Nothing to be done for 'cfg-test.sh'. make[3]: Nothing to be done for 'sanity-lib.sh'. make[3]: Nothing to be done for 'system-override-sig.sh'. make[3]: Nothing to be done for 'system-override-hash.sh'. make[3]: Nothing to be done for 'system-override-versions.sh'. make[3]: Nothing to be done for 'system-override-invalid.sh'. make[3]: Nothing to be done for 'system-override-curves.sh'. make[3]: Nothing to be done for 'system-override-profiles.sh'. make[3]: Nothing to be done for 'system-override-tls.sh'. make[3]: Nothing to be done for 'system-override-kx.sh'. make[3]: Nothing to be done for 'system-override-default-priority-string.sh'. make[3]: Nothing to be done for 'system-override-sig-tls.sh'. make[3]: Nothing to be done for 'system-override-hash-filters-prf.sh'. make[3]: Nothing to be done for 'system-override-sig-allowlist.sh'. make[3]: Nothing to be done for 'system-override-hash-allowlist.sh'. make[3]: Nothing to be done for 'system-override-versions-allowlist.sh'. make[3]: Nothing to be done for 'system-override-curves-allowlist.sh'. make[3]: Nothing to be done for 'system-override-special-allowlist.sh'. make[3]: Nothing to be done for 'protocol-set-allowlist.sh'. make[3]: Nothing to be done for 'system-override-allow-rsa-pkcs1-encrypt.sh'. make[3]: Nothing to be done for 'gnutls-cli-self-signed.sh'. make[3]: Nothing to be done for 'gnutls-cli-invalid-crl.sh'. make[3]: Nothing to be done for 'gnutls-cli-rawpk.sh'. make[3]: Nothing to be done for 'dh-fips-approved.sh'. make[3]: Nothing to be done for 'p11-kit-trust.sh'. make[3]: Nothing to be done for 'testpkcs11.sh'. make[3]: Nothing to be done for 'certtool-pkcs11.sh'. make[3]: Nothing to be done for 'pkcs11-tool.sh'. make[3]: Nothing to be done for 'p11-kit-load.sh'. make[3]: Nothing to be done for 'pqc-hybrid-kx.sh'. CC pkcs11/list-objects.o CC tls13/supported_versions.o CC tls13/tls12-no-tls13-exts.o CC tls13/post-handshake-with-cert.o CC tls13/post-handshake-without-cert.o CC tls13/cookie.o CC tls13/key_share.o CC tls13/prf.o CC tls13/prf-early.o CC tls13/post-handshake-with-cert-ticket.o CC tls13/tls12_rollback_detection-rnd-rollback-detection.o CC tls13/tls11_rollback_detection-rnd-rollback-detection.o CC tls13/tls12_check_rollback_val-rnd-check-rollback-val.o CC tls13/tls11_check_rollback_val-rnd-check-rollback-val.o CC tls13/post-handshake-with-psk.o CC tls13/post-handshake-with-cert-auto.o CC tls13/anti_replay-anti_replay.o CC tls13/compress-cert.o CC tls13/compress-cert-neg.o CC tls13/compress-cert-neg2.o CC tls13/compress-cert-cli.o CC tls13/hello_retry_request.o CC tls13/hello_retry_request_resume.o CC tls13/psk-ext.o CC tls13/key_update.o CC tls13/key_update_multiple.o CC tls13/key_limits.o CC tls13/multi-ocsp.o CC tls13/ocsp-client.o CC tls13/change_cipher_spec.o CCLD tls13-cipher-neg CC tls13/no-psk-exts.o CC tls13/psk-dumbfw.o CC tls13/psk-ke-modes.o CCLD tls13-early-start CCLD tls13/no-auto-send-ticket CCLD mini-record-2 CCLD simple CCLD gnutls_hmac_fast CCLD set_pkcs12_cred CCLD cert CCLD certuniqueid CCLD tls-neg-ext-key CCLD mpi CCLD certificate_set_x509_crl CCLD dn CCLD parse_ca CCLD x509-dn CCLD x509-dn-decode CCLD record-sizes CCLD hostname-check CCLD cve-2008-4989 CCLD pkcs12_s2k CCLD chainverify CCLD missingissuer CCLD missingissuer_aia CCLD record-sizes-range CCLD crq_key_id CCLD x509sign-verify CCLD sign-verify CCLD cve-2009-1415 CCLD cve-2009-1416 CCLD tls10-server-kx-neg crq_key_id.c: In function 'doit.part.0': crq_key_id.c:180:20: warning: check of 'pkey_key_id_18' for NULL after already dereferencing it [-Wanalyzer-deref-before-check] 180 | if (pkey_key_id) { | ^ 'doit': events 1-3 | | 40 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 57 | if (ret < 0) | | ~ | | | | | (2) following 'false' branch... |...... | 60 | gnutls_global_set_log_function(tls_log_func); | | ~ | | | | | (3) ...to here | 'doit': event 4 | |lto1: | (4): calling 'doit.part.0' from 'doit' | +--> 'doit.part.0': events 5-44 | | 40 | void doit(void) | | ^ | | | | | (5) entry to 'doit.part.0' |...... | 64 | for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; | | ~ | | | | | (6) following 'true' branch (when 'algorithm_8 != 3')... |...... | 70 | ret = gnutls_x509_crq_init(&crq); | | ~ | | | | | (7) ...to here | 71 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... |...... | 75 | ret = gnutls_x509_privkey_init(&pkey); | | ~ | | | | | (9) ...to here | 76 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... |...... | 81 | ret = gnutls_privkey_init(&abs_pkey); | | ~ | | | | | (11) ...to here | 82 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... |...... | 87 | ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0); | | ~ | | | | | (13) ...to here | 88 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 92 | } else if (debug) { | | ~ | | | | | (15) ...to here |...... | 100 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (16) following 'false' branch... |...... | 105 | pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len); | | ~ | | | | | (17) ...to here | | (18) allocated here |...... | 108 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (19) following 'false' branch... |...... | 113 | ret = gnutls_x509_crq_set_version(crq, 1); | | ~ | | | | | (20) ...to here | 114 | if (ret < 0) { | | ~ | | | | | (21) following 'false' branch... |...... | 119 | ret = gnutls_x509_crq_set_key(crq, pkey); | | ~ | | | | | (22) ...to here | 120 | if (ret < 0) { | | ~ | | | | | (23) following 'false' branch... |...... | 125 | ret = gnutls_x509_crq_set_dn_by_oid( | | ~ | | | | | (24) ...to here | 126 | crq, GNUTLS_OID_X520_COMMON_NAME, 0, "CN-Test", 7); | 127 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... |...... | 132 | ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0); | | ~ | | | | | (26) ...to here | 133 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... |...... | 138 | ret = gnutls_x509_crq_privkey_sign(crq, abs_pkey, | | ~ | | | | | (28) ...to here | 139 | GNUTLS_DIG_SHA256, 0); | 140 | if (ret < 0) { | | ~ | | | | | (29) following 'false' branch... |...... | 145 | ret = gnutls_x509_crq_verify(crq, 0); | | ~ | | | | | (30) ...to here | 146 | if (ret < 0) { | | ~ | | | | | (31) following 'false' branch... |...... | 151 | crq_key_id_len = 0; | | ~ | | | | | (32) ...to here |...... | 154 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (33) following 'false' branch... |...... | 159 | crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len); | | ~ | | | | | (34) ...to here |...... | 162 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (35) following 'false' branch... |...... | 167 | if (crq_key_id_len == pkey_key_id_len) { | | ~ ~ | | | | | | | (36) ...to here | | (37) following 'true' branch... | 168 | ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len); | | ~ | | | | | (38) ...to here | | (39) pointer 'pkey_key_id_18' is dereferenced here | 169 | if (ret == 0) { | | ~ | | | | | (40) following 'true' branch (when 'ret_53 == 0')... | 170 | if (debug) | | ~~ | | || | | |(41) ...to here | | (42) following 'false' branch... |...... | 180 | if (pkey_key_id) { | | ~ | | | | | (43) ...to here | | (44) pointer 'pkey_key_id_18' is checked for NULL here but it was already dereferenced at (39) | crq_key_id.c:180:20: warning: check of 'pkey_key_id_18' for NULL after already dereferencing it [-Wanalyzer-deref-before-check] 180 | if (pkey_key_id) { | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-5 | |crq_key_id.c:40:6: | 40 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 57 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... |...... | 60 | gnutls_global_set_log_function(tls_log_func); | | ~ | | | | | (5) ...to here | 'doit': event 6 | |lto1: | (6): calling 'doit.part.0' from 'doit' | +--> 'doit.part.0': events 7-46 | | 40 | void doit(void) | | ^ | | | | | (7) entry to 'doit.part.0' |...... | 64 | for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; | | ~ | | | | | (8) following 'true' branch (when 'algorithm_8 != 3')... |...... | 70 | ret = gnutls_x509_crq_init(&crq); | | ~ | | | | | (9) ...to here | 71 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 75 | ret = gnutls_x509_privkey_init(&pkey); | | ~ | | | | | (11) ...to here | 76 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... |...... | 81 | ret = gnutls_privkey_init(&abs_pkey); | | ~ | | | | | (13) ...to here | 82 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 87 | ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0); | | ~ | | | | | (15) ...to here | 88 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 92 | } else if (debug) { | | ~ | | | | | (17) ...to here |...... | 100 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (18) following 'false' branch... |...... | 105 | pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len); | | ~ | | | | | (19) ...to here | | (20) allocated here |...... | 108 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (21) following 'false' branch... |...... | 113 | ret = gnutls_x509_crq_set_version(crq, 1); | | ~ | | | | | (22) ...to here | 114 | if (ret < 0) { | | ~ | | | | | (23) following 'false' branch... |...... | 119 | ret = gnutls_x509_crq_set_key(crq, pkey); | | ~ | | | | | (24) ...to here | 120 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... |...... | 125 | ret = gnutls_x509_crq_set_dn_by_oid( | | ~ | | | | | (26) ...to here | 126 | crq, GNUTLS_OID_X520_COMMON_NAME, 0, "CN-Test", 7); | 127 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... |...... | 132 | ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0); | | ~ | | | | | (28) ...to here | 133 | if (ret < 0) { | | ~ | | | | | (29) following 'false' branch... |...... | 138 | ret = gnutls_x509_crq_privkey_sign(crq, abs_pkey, | | ~ | | | | | (30) ...to here | 139 | GNUTLS_DIG_SHA256, 0); | 140 | if (ret < 0) { | | ~ | | | | | (31) following 'false' branch... |...... | 145 | ret = gnutls_x509_crq_verify(crq, 0); | | ~ | | | | | (32) ...to here | 146 | if (ret < 0) { | | ~ | | | | | (33) following 'false' branch... |...... | 151 | crq_key_id_len = 0; | | ~ | | | | | (34) ...to here |...... | 154 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (35) following 'false' branch... |...... | 159 | crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len); | | ~ | | | | | (36) ...to here |...... | 162 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (37) following 'false' branch... |...... | 167 | if (crq_key_id_len == pkey_key_id_len) { | | ~ ~ | | | | | | | (38) ...to here | | (39) following 'true' branch... | 168 | ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len); | | ~ | | | | | (40) ...to here | | (41) pointer 'pkey_key_id_18' is dereferenced here | 169 | if (ret == 0) { | | ~ | | | | | (42) following 'true' branch (when 'ret_53 == 0')... | 170 | if (debug) | | ~~ | | || | | |(43) ...to here | | (44) following 'false' branch... |...... | 180 | if (pkey_key_id) { | | ~ | | | | | (45) ...to here | | (46) pointer 'pkey_key_id_18' is checked for NULL here but it was already dereferenced at (41) | crq_key_id.c:185:20: warning: check of 'crq_key_id_47' for NULL after already dereferencing it [-Wanalyzer-deref-before-check] 185 | if (crq_key_id) { | ^ 'doit': events 1-3 | | 40 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 57 | if (ret < 0) | | ~ | | | | | (2) following 'false' branch... |...... | 60 | gnutls_global_set_log_function(tls_log_func); | | ~ | | | | | (3) ...to here | 'doit': event 4 | |lto1: | (4): calling 'doit.part.0' from 'doit' | +--> 'doit.part.0': events 5-46 | | 40 | void doit(void) | | ^ | | | | | (5) entry to 'doit.part.0' |...... | 64 | for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; | | ~ | | | | | (6) following 'true' branch (when 'algorithm_8 != 3')... |...... | 70 | ret = gnutls_x509_crq_init(&crq); | | ~ | | | | | (7) ...to here | 71 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... |...... | 75 | ret = gnutls_x509_privkey_init(&pkey); | | ~ | | | | | (9) ...to here | 76 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... |...... | 81 | ret = gnutls_privkey_init(&abs_pkey); | | ~ | | | | | (11) ...to here | 82 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... |...... | 87 | ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0); | | ~ | | | | | (13) ...to here | 88 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 92 | } else if (debug) { | | ~ | | | | | (15) ...to here |...... | 100 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (16) following 'false' branch... |...... | 105 | pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len); | | ~ | | | | | (17) ...to here |...... | 108 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (18) following 'false' branch... |...... | 113 | ret = gnutls_x509_crq_set_version(crq, 1); | | ~ | | | | | (19) ...to here | 114 | if (ret < 0) { | | ~ | | | | | (20) following 'false' branch... |...... | 119 | ret = gnutls_x509_crq_set_key(crq, pkey); | | ~ | | | | | (21) ...to here | 120 | if (ret < 0) { | | ~ | | | | | (22) following 'false' branch... |...... | 125 | ret = gnutls_x509_crq_set_dn_by_oid( | | ~ | | | | | (23) ...to here | 126 | crq, GNUTLS_OID_X520_COMMON_NAME, 0, "CN-Test", 7); | 127 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... |...... | 132 | ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0); | | ~ | | | | | (25) ...to here | 133 | if (ret < 0) { | | ~ | | | | | (26) following 'false' branch... |...... | 138 | ret = gnutls_x509_crq_privkey_sign(crq, abs_pkey, | | ~ | | | | | (27) ...to here | 139 | GNUTLS_DIG_SHA256, 0); | 140 | if (ret < 0) { | | ~ | | | | | (28) following 'false' branch... |...... | 145 | ret = gnutls_x509_crq_verify(crq, 0); | | ~ | | | | | (29) ...to here | 146 | if (ret < 0) { | | ~ | | | | | (30) following 'false' branch... |...... | 151 | crq_key_id_len = 0; | | ~ | | | | | (31) ...to here |...... | 154 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (32) following 'false' branch... |...... | 159 | crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len); | | ~ | | | | | (33) ...to here | | (34) allocated here |...... | 162 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (35) following 'false' branch... |...... | 167 | if (crq_key_id_len == pkey_key_id_len) { | | ~ ~ | | | | | | | (36) ...to here | | (37) following 'true' branch... | 168 | ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len); | | ~ | | | | | (38) ...to here | | (39) pointer 'crq_key_id_47' is dereferenced here | 169 | if (ret == 0) { | | ~ | | | | | (40) following 'true' branch (when 'ret_53 == 0')... | 170 | if (debug) | | ~~ | | || | | |(41) ...to here | | (42) following 'false' branch... |...... | 180 | if (pkey_key_id) { | | ~ | | | | | (43) ...to here | | (44) following 'false' branch (when 'pkey_key_id_18' is NULL)... |...... | 185 | if (crq_key_id) { | | ~ | | | | | (45) ...to here | | (46) pointer 'crq_key_id_47' is checked for NULL here but it was already dereferenced at (39) | crq_key_id.c:185:20: warning: check of 'crq_key_id_47' for NULL after already dereferencing it [-Wanalyzer-deref-before-check] 185 | if (crq_key_id) { | ^ CCLD tls11-server-kx-neg 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-5 | |crq_key_id.c:40:6: | 40 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 57 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... |...... | 60 | gnutls_global_set_log_function(tls_log_func); | | ~ | | | | | (5) ...to here | 'doit': event 6 | |lto1: | (6): calling 'doit.part.0' from 'doit' | +--> 'doit.part.0': events 7-48 | | 40 | void doit(void) | | ^ | | | | | (7) entry to 'doit.part.0' |...... | 64 | for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; | | ~ | | | | | (8) following 'true' branch (when 'algorithm_8 != 3')... |...... | 70 | ret = gnutls_x509_crq_init(&crq); | | ~ | | | | | (9) ...to here | 71 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 75 | ret = gnutls_x509_privkey_init(&pkey); | | ~ | | | | | (11) ...to here | 76 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... |...... | 81 | ret = gnutls_privkey_init(&abs_pkey); | | ~ | | | | | (13) ...to here | 82 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 87 | ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0); | | ~ | | | | | (15) ...to here | 88 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 92 | } else if (debug) { | | ~ | | | | | (17) ...to here |...... | 100 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (18) following 'false' branch... |...... | 105 | pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len); | | ~ | | | | | (19) ...to here |...... | 108 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (20) following 'false' branch... |...... | 113 | ret = gnutls_x509_crq_set_version(crq, 1); | | ~ | | | | | (21) ...to here | 114 | if (ret < 0) { | | ~ | | | | | (22) following 'false' branch... |...... | 119 | ret = gnutls_x509_crq_set_key(crq, pkey); | | ~ | | | | | (23) ...to here | 120 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... |...... | 125 | ret = gnutls_x509_crq_set_dn_by_oid( | | ~ | | | | | (25) ...to here | 126 | crq, GNUTLS_OID_X520_COMMON_NAME, 0, "CN-Test", 7); | 127 | if (ret < 0) { | | ~ | | | | | (26) following 'false' branch... |...... | 132 | ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0); | | ~ | | | | | (27) ...to here | 133 | if (ret < 0) { | | ~ | | | | | (28) following 'false' branch... |...... | 138 | ret = gnutls_x509_crq_privkey_sign(crq, abs_pkey, | | ~ | | | | | (29) ...to here | 139 | GNUTLS_DIG_SHA256, 0); | 140 | if (ret < 0) { | | ~ | | | | | (30) following 'false' branch... |...... | 145 | ret = gnutls_x509_crq_verify(crq, 0); | | ~ | | | | | (31) ...to here | 146 | if (ret < 0) { | | ~ | | | | | (32) following 'false' branch... |...... | 151 | crq_key_id_len = 0; | | ~ | | | | | (33) ...to here |...... | 154 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (34) following 'false' branch... |...... | 159 | crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len); | | ~ | | | | | (35) ...to here | | (36) allocated here |...... | 162 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (37) following 'false' branch... |...... | 167 | if (crq_key_id_len == pkey_key_id_len) { | | ~ ~ | | | | | | | (38) ...to here | | (39) following 'true' branch... | 168 | ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len); | | ~ | | | | | (40) ...to here | | (41) pointer 'crq_key_id_47' is dereferenced here | 169 | if (ret == 0) { | | ~ | | | | | (42) following 'true' branch (when 'ret_53 == 0')... | 170 | if (debug) | | ~~ | | || | | |(43) ...to here | | (44) following 'false' branch... |...... | 180 | if (pkey_key_id) { | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'pkey_key_id_18' is NULL)... |...... | 185 | if (crq_key_id) { | | ~ | | | | | (47) ...to here | | (48) pointer 'crq_key_id_47' is checked for NULL here but it was already dereferenced at (41) | CCLD tls12-server-kx-neg CCLD ssl30-server-kx-neg CCLD tls12-cipher-neg CCLD tls11-cipher-neg CCLD tls10-cipher-neg CCLD ssl30-cipher-neg CCLD crq_apis CCLD init_roundtrip CCLD pkcs12_s2k_pem CCLD dn2 CCLD tls12-rehandshake-cert-3 CCLD nul-in-x509-names CCLD x509_altname CCLD pkcs12_encode CCLD mini-x509 CCLD gnutls_session_set_id CCLD rng-fork rng-fork.c: In function 'doit': rng-fork.c:70:25: warning: leak of FILE 'fopen ("./rng-test", "w")' [CWE-775] [-Wanalyzer-file-leak] 70 | assert(gnutls_rnd(i, buf1, sizeof(buf1)) >= 0); | ^ 'doit': events 1-9 | | 63 | for (i = GNUTLS_RND_NONCE; i <= GNUTLS_RND_KEY; i++) { | | ^ | | | | | (1) following 'true' branch (when 'i_5 != 3')... | 64 | pid = fork(); | | ~ | | | | | (2) ...to here | 65 | if (pid == 0) { | | ~ | | | | | (3) following 'true' branch (when 'pid_16 == 0')... | 66 | fp = fopen(FILENAME, "w"); | | ~ | | | | | (4) ...to here | | (5) opened here | 67 | if (fp == NULL) | | ~ | | | | | (6) assuming 'fopen ("./rng-test", "w")' is non-NULL | | (7) following 'false' branch... |...... | 70 | assert(gnutls_rnd(i, buf1, sizeof(buf1)) >= 0); | | ~ | | | | | (8) ...to here | | (9) 'fopen ("./rng-test", "w")' leaks here; was opened at (5) | CCLD mini-eagain-dtls CCLD resume-dtls CCLD empty_retrieve_function CCLD tls13-rehandshake-cert CCLD gnutls_ext_raw_parse CCLD handshake-large-cert CCLD x509cert utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |empty_retrieve_function.c:76:6: | 76 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 95 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... |...... | 100 | gnutls_certificate_allocate_credentials(&clicred); | | ~ | | | | | (3) ...to here | 101 | gnutls_certificate_set_retrieve_function(clicred, cert_cb1); | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-17 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (11) ...to here | | (12) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(13) ...to here | | (14) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (15) ...to here | | (16) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (17) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |empty_retrieve_function.c:76:6: | 76 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 95 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... |...... | 100 | gnutls_certificate_allocate_credentials(&clicred); | | ~ | | | | | (3) ...to here | 101 | gnutls_certificate_set_retrieve_function(clicred, cert_cb1); | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-20 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (11) ...to here | | (12) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~ | | | | | (13) ...to here | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (14) following 'true' branch... |...... | 94 | ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (15) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (16) following 'false' branch... |...... | 99 | ret = gnutls_priority_set_direct(client, cli_prio, NULL); | | ~ | | | | | (17) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... |...... | 103 | gnutls_transport_set_push_function(client, client_push); | | ~ | | | | | (19) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (20) following 'false' branch... | '_test_cli_serv': event 21 | |lto1: | (21): ...to here | '_test_cli_serv': events 22-33 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (22) following 'true' branch... | | (23) ...to here | | (24) following 'false' branch (when 'cli_err_101(D) == -1')... | | (25) ...to here | | (26) following 'true' branch (when 'serv_err_102(D) != -1')... | | (27) ...to here | | (28) following 'false' branch (when 'sret_41 == serv_err_102(D)')... | 111 | goto cleanup; | | ~ | | | | | (29) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (30) following 'false' branch (when 'client_cb_151(D)' is NULL)... | 178 | client_cb(client, priv); | 179 | if (server_cb) | | ~ | | | | | (31) ...to here | | (32) following 'false' branch (when 'server_cb_154(D)' is NULL)... |...... | 182 | gnutls_deinit(client); | | ~ | | | | | (33) ...to here | <------+ | 'doit': events 34-35 | |empty_retrieve_function.c:102:9: | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (34) returning to 'doit' from '_test_cli_serv' |...... | 109 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (35) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 36-48 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (36) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (37) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (38) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (39) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (40) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (41) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (42) ...to here | | (43) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(44) ...to here | | (45) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (46) ...to here | | (47) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (48) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |empty_retrieve_function.c:76:6: | 76 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 95 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... |...... | 100 | gnutls_certificate_allocate_credentials(&clicred); | | ~ | | | | | (3) ...to here | 101 | gnutls_certificate_set_retrieve_function(clicred, cert_cb1); | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-20 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (11) ...to here | | (12) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~ | | | | | (13) ...to here |...... | 89 | assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, | | ~ | | | | | (14) following 'true' branch... |...... | 94 | ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (15) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (16) following 'false' branch... |...... | 99 | ret = gnutls_priority_set_direct(client, cli_prio, NULL); | | ~ | | | | | (17) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... |...... | 103 | gnutls_transport_set_push_function(client, client_push); | | ~ | | | | | (19) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (20) following 'false' branch... | '_test_cli_serv': event 21 | |lto1: | (21): ...to here | '_test_cli_serv': events 22-33 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (22) following 'true' branch... | | (23) ...to here | | (24) following 'false' branch (when 'cli_err_101(D) == -1')... | | (25) ...to here | | (26) following 'true' branch (when 'serv_err_102(D) != -1')... | | (27) ...to here | | (28) following 'false' branch (when 'sret_41 == serv_err_102(D)')... | 111 | goto cleanup; | | ~ | | | | | (29) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (30) following 'false' branch (when 'client_cb_151(D)' is NULL)... | 178 | client_cb(client, priv); | 179 | if (server_cb) | | ~ | | | | | (31) ...to here | | (32) following 'false' branch (when 'server_cb_154(D)' is NULL)... |...... | 182 | gnutls_deinit(client); | | ~ | | | | | (33) ...to here | <------+ | 'doit': events 34-35 | |empty_retrieve_function.c:102:9: | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (34) returning to 'doit' from '_test_cli_serv' |...... | 109 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (35) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 36-51 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (36) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (37) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (38) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (39) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (40) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (41) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (42) ...to here | | (43) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~ | | | | | (44) ...to here |...... | 89 | assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, | | ~ | | | | | (45) following 'true' branch... |...... | 94 | ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (46) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (47) following 'false' branch... |...... | 99 | ret = gnutls_priority_set_direct(client, cli_prio, NULL); | | ~ | | | | | (48) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (49) following 'false' branch... |...... | 103 | gnutls_transport_set_push_function(client, client_push); | | ~ | | | | | (50) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (51) following 'false' branch... | '_test_cli_serv': event 52 | |lto1: | (52): ...to here | '_test_cli_serv': events 53-64 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (53) following 'true' branch... | | (54) ...to here | | (55) following 'false' branch (when 'cli_err_101(D) == -1')... | | (56) ...to here | | (57) following 'true' branch (when 'serv_err_102(D) != -1')... | | (58) ...to here | | (59) following 'false' branch (when 'sret_41 == serv_err_102(D)')... | 111 | goto cleanup; | | ~ | | | | | (60) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (61) following 'false' branch (when 'client_cb_151(D)' is NULL)... | 178 | client_cb(client, priv); | 179 | if (server_cb) | | ~ | | | | | (62) ...to here | | (63) following 'false' branch (when 'server_cb_154(D)' is NULL)... |...... | 182 | gnutls_deinit(client); | | ~ | | | | | (64) ...to here | <------+ | 'doit': events 65-66 | |empty_retrieve_function.c:109:9: | 109 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (65) returning to 'doit' from '_test_cli_serv' |...... | 116 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (66) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 67-79 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (67) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (68) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (69) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (70) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (71) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (72) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (73) ...to here | | (74) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(75) ...to here | | (76) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (77) ...to here | | (78) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (79) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD x509cert-tl CCLD x509cert-ct CCLD infoaccess CCLD mini-dtls-hello-verify CCLD sign-verify-ed25519-rfc8080 CCLD trustdb-tofu CCLD dtls-rehandshake-anon CCLD mini-alpn CCLD mini-dtls-large CCLD mini-termination CCLD mini-x509-cas CCLD mini-x509-2 utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-termination.c:304:6: | 304 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 305 | { | 306 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 295 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 300 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD pkcs12_simple CCLD mini-emsgsize-dtls CCLD chainverify-unsorted CCLD mini-overhead CCLD tls12-ffdhe CCLD mini-dtls-heartbeat CCLD mini-x509-callbacks utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-overhead.c:310:6: | 310 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 311 | { | 312 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 301 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 306 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD key-openssl CCLD priorities CCLD priorities-groups CCLD gnutls_x509_privkey_import CCLD gnutls_x509_crt_list_import CCLD time CCLD x509-server-verify CCLD sign-verify-ext4 CCLD tls-neg-ext4-key CCLD resume-lifetime CCLD mini-dtls-srtp CCLD rsa-encrypt-decrypt CCLD mini-loss-time CCLD gnutls-strcodes CCLD mini-record CCLD mini-dtls-record CCLD handshake-timeout CCLD mini-record-range CCLD cert-status CCLD rsa-psk utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-record-range.c:324:6: | 324 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 325 | { | 326 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 316 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 320 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD global-init CCLD sec-params CCLD sign-verify-data CCLD fips-test CCLD fips-override-test CCLD mini-global-load CCLD name-constraints CCLD x509-extensions CCLD long-session-id utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |long-session-id.c:239:6: | 239 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 240 | { | 241 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 231 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 235 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD mini-x509-callbacks-intr CCLD mini-dtls-lowmtu CCLD set_x509_key_file-late CCLD crlverify utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-dtls-lowmtu.c:320:6: | 320 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 321 | { | 322 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 312 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 316 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD mini-dtls-discard CCLD mini-record-failure CCLD openconnect-dtls12 set_x509_key_file-late.c: In function 'set_cert': set_x509_key_file-late.c:54:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 54 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'handshake_hook_func': events 1-8 | | 67 | static int handshake_hook_func(gnutls_session_t session, unsigned int htype, | | ^ | | | | | (1) entry to 'handshake_hook_func' |...... | 74 | assert(htype == GNUTLS_HANDSHAKE_CLIENT_HELLO); | | ~ | | | | | (2) following 'true' branch (when 'htype_5(D) == 1')... | 75 | assert(when == GNUTLS_HOOK_PRE); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch (when 'when_8(D) == 0')... | 76 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 77 | | 78 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 79 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (8) calling 'set_cert' from 'handshake_hook_func' | +--> 'set_cert': events 9-10 | | 42 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (9) entry to 'set_cert' |...... | 49 | certfile = get_tmpname(NULL); | | ~ | | | | | (10) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 11-13 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (11) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (12) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (13) ...to here | <------+ | 'set_cert': events 14-19 | |set_x509_key_file-late.c:49:20: | 49 | certfile = get_tmpname(NULL); | | ^ | | | | | (14) returning to 'set_cert' from 'get_tmpname' | 50 | | 51 | fp = fopen(certfile, "w"); | | ~ | | | | | (15) opened here | 52 | if (fp == NULL) | | ~ | | | | | (16) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (17) following 'false' branch... | 53 | fail("error in fopen\n"); | 54 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (18) ...to here | | (19) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (15) | set_x509_key_file-late.c:54:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 54 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'handshake_hook_func': events 1-8 | | 67 | static int handshake_hook_func(gnutls_session_t session, unsigned int htype, | | ^ | | | | | (1) entry to 'handshake_hook_func' |...... | 74 | assert(htype == GNUTLS_HANDSHAKE_CLIENT_HELLO); | | ~ | | | | | (2) following 'true' branch (when 'htype_5(D) == 1')... | 75 | assert(when == GNUTLS_HOOK_PRE); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch (when 'when_8(D) == 0')... | 76 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 77 | | 78 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 79 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (8) calling 'set_cert' from 'handshake_hook_func' | +--> 'set_cert': events 9-10 | | 42 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (9) entry to 'set_cert' |...... | 49 | certfile = get_tmpname(NULL); | | ~ | | | | | (10) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 11-13 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (11) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (12) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (13) ...to here | <------+ | 'set_cert': events 14-21 | |set_x509_key_file-late.c:49:20: | 49 | certfile = get_tmpname(NULL); | | ^ | | | | | (14) returning to 'set_cert' from 'get_tmpname' | 50 | | 51 | fp = fopen(certfile, "w"); | | ~ | | | | | (15) opened here | 52 | if (fp == NULL) | | ~ | | | | | (16) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (17) following 'false' branch... | 53 | fail("error in fopen\n"); | 54 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (18) ...to here | | (19) following 'true' branch... | | (21) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (15) | 55 | assert(fwrite(key->data, 1, key->size, fp) > 0); | | ~ | | | | | (20) ...to here | CCLD tls12-rehandshake-cert-2 CCLD custom-urls CCLD set_x509_key_mem CCLD set_x509_key_file utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |custom-urls.c:273:6: | 273 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 274 | { | 275 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 265 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 269 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls12-rehandshake-cert-auto CCLD tls12-rehandshake-set-prio utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-12 | |set_x509_key_mem.c:55:6: | 55 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 69 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 70 | gnutls_certificate_allocate_credentials(&x509_cred); | | ~ | | | | | (3) ...to here |...... | 74 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... |...... | 77 | ret = gnutls_certificate_set_x509_key_mem( | | ~ | | | | | (5) ...to here | 78 | x509_cred, &cli_cert, &server_key, GNUTLS_X509_FMT_PEM); | 79 | if (ret != GNUTLS_E_CERTIFICATE_KEY_MISMATCH) { | | ~ | | | | | (6) following 'false' branch... |...... | 84 | gnutls_certificate_free_credentials(x509_cred); | | ~ | | | | | (7) ...to here |...... | 94 | if (ret < 0) { | | ~ | | | | | (8) following 'false' branch... |...... | 99 | ret = gnutls_certificate_set_x509_key_mem( | | ~ | | | | | (9) ...to here |...... | 102 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... |...... | 107 | test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (11) ...to here | | (12) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 13-14 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (13) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (14) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 15-27 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (15) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (17) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (18) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (19) ...to here | 79 | if (ret < 0) | | ~ | | | | | (20) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (21) ...to here | | (22) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(23) ...to here | | (24) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (25) ...to here | | (26) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (27) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD mini-chain-unsorted CCLD x509-verify-duplicate utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-chain-unsorted.c:349:6: | 349 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 350 | { | 351 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 340 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 345 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD x509-verify-with-crl CCLD mini-dtls-mtu CCLD privkey-verify-broken CCLD mini-dtls-record-asym CCLD key-import-export CCLD priority-set CCLD priority-set2 CCLD pubkey-import-export CCLD sign-is-secure CCLD spki CCLD spki-abstract CCLD rsa-rsa-oaep CCLD rsa-rsa-pss CCLD mini-dtls-fork CCLD mini-key-material CCLD x509cert-invalid CCLD tls-ext-register CCLD tls-supplemental CCLD mini-dtls0-9 CCLD duplicate-extensions CCLD record-retvals CCLD mini-server-name CCLD tls-etm CCLD tls-force-etm utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | gnutls_global_set_time_function(mytime); | | ~ | | | | | (5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... |...... | 141 | gnutls_certificate_free_credentials(xcred); | | ~ | | | | | (7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... | 144 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (9) ...to here | | (10) following 'true' branch... | 145 | | 146 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (11) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... |...... | 153 | success("Testing store of certificates\n"); | | ~ | | | | | (13) ...to here | 154 | | 155 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-23 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 78 | if (fp == NULL) | | ~ | | | | | (16) following 'false' branch... | 79 | fail("error in fopen\n"); | 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (17) ...to here | | (18) following 'true' branch... | 81 | assert(fwrite(key->data, 1, key->size, fp) > 0); | | ~ | | | | | (19) ...to here | | (20) following 'true' branch... | 82 | fclose(fp); | | ~ | | | | | (21) ...to here |...... | 86 | if (ret < 0) | | ~ | | | | | (22) following 'false' branch... |...... | 90 | return ret; | | ~ | | | | | (23) ...to here | <------+ | 'doit': events 24-25 | | 155 | idx = set_cert(xcred, &server_ca3_key, | | ^ | | | | | (24) returning to 'doit' from 'set_cert' | 156 | &server_ca3_localhost6_cert_chain); | 157 | verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2); | | ~ | | | | | (25) calling 'verify_written_cert' from 'doit' | +--> 'verify_written_cert': events 26-29 | | 93 | static void verify_written_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (26) entry to 'verify_written_cert' |...... | 102 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... |...... | 107 | compare(&tcert, cert->data); | | ~ ~ | | | | | | | (28) ...to here | | (29) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 30-36 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (30) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (31) following 'false' branch... |...... | 59 | if (der->size != new_der.size || | | ~ ~ ~ | | | | | | | | (32) ...to here (35) following 'false' branch... | | (33) following 'false' branch... | 60 | memcmp(der->data, new_der.data, der->size) != 0) { | | ~ | | | | | (34) ...to here |...... | 64 | gnutls_free(new_der.data); | | ~ | | | | | (36) ...to here | <------+ | 'verify_written_cert': events 37-42 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (37) returning to 'verify_written_cert' from 'compare' | 108 | | 109 | if (ncerts > 1) { | | ~ | | | | | (38) following 'true' branch (when 'ncerts_14(D) > 1')... | 110 | ret = gnutls_certificate_get_crt_raw(xcred, idx, 1, &tcert); | | ~ | | | | | (39) ...to here | 111 | if (ret < 0) { | | ~ | | | | | (40) following 'false' branch... |...... | 118 | compare(&tcert, cert->data + 2); | | ~ ~ | | | | | | | (41) ...to here | | (42) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 43-49 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (43) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (44) following 'false' branch... |...... | 59 | if (der->size != new_der.size || | | ~ ~ ~ | | | | | | | | (45) ...to here (48) following 'false' branch... | | (46) following 'false' branch... | 60 | memcmp(der->data, new_der.data, der->size) != 0) { | | ~ | | | | | (47) ...to here |...... | 64 | gnutls_free(new_der.data); | | ~ | | | | | (49) ...to here | <------+ | 'verify_written_cert': event 50 | | 118 | compare(&tcert, cert->data + 2); | | ^ | | | | | (50) returning to 'verify_written_cert' from 'compare' | <------+ | 'doit': events 51-54 | | 157 | verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2); | | ^ | | | | | (51) returning to 'doit' from 'verify_written_cert' | 158 | assert(idx == 0); | | ~ | | | | | (52) following 'true' branch... | 159 | | 160 | success("Tested store of %d\n", idx); | | ~ | | | | | (53) ...to here | 161 | | 162 | idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert); | | ~ | | | | | (54) calling 'set_cert' from 'doit' | +--> 'set_cert': events 55-63 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (55) entry to 'set_cert' |...... | 78 | if (fp == NULL) | | ~ | | | | | (56) following 'false' branch... | 79 | fail("error in fopen\n"); | 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (57) ...to here | | (58) following 'true' branch... | 81 | assert(fwrite(key->data, 1, key->size, fp) > 0); | | ~ | | | | | (59) ...to here | | (60) following 'true' branch... | 82 | fclose(fp); | | ~ | | | | | (61) ...to here |...... | 86 | if (ret < 0) | | ~ | | | | | (62) following 'false' branch... |...... | 90 | return ret; | | ~ | | | | | (63) ...to here | <------+ | 'doit': events 64-65 | | 162 | idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert); | | ^ | | | | | (64) returning to 'doit' from 'set_cert' | 163 | verify_written_cert(xcred, idx, &server_ca3_localhost_cert, 1); | | ~ | | | | | (65) calling 'verify_written_cert' from 'doit' | +--> 'verify_written_cert': events 66-69 | | 93 | static void verify_written_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (66) entry to 'verify_written_cert' |...... | 102 | if (ret < 0) { | | ~ | | | | | (67) following 'false' branch... |...... | 107 | compare(&tcert, cert->data); | | ~ ~ | | | | | | | (68) ...to here | | (69) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 70-76 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (70) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (71) following 'false' branch... |...... | 59 | if (der->size != new_der.size || | | ~ ~ ~ | | | | | | | | (72) ...to here (75) following 'false' branch... | | (73) following 'false' branch... | 60 | memcmp(der->data, new_der.data, der->size) != 0) { | | ~ | | | | | (74) ...to here |...... | 64 | gnutls_free(new_der.data); | | ~ | | | | | (76) ...to here | <------+ | 'verify_written_cert': events 77-79 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (77) returning to 'verify_written_cert' from 'compare' | 108 | | 109 | if (ncerts > 1) { | | ~ | | | | | (78) following 'false' branch (when 'ncerts_14(D) <= 1')... |...... | 120 | } | | ~ | | | | | (79) ...to here | <------+ | 'doit': events 80-83 | | 163 | verify_written_cert(xcred, idx, &server_ca3_localhost_cert, 1); | | ^ | | | | | (80) returning to 'doit' from 'verify_written_cert' | 164 | assert(idx == 1); | | ~ | | | | | (81) following 'true' branch... | 165 | | 166 | success("Tested store of %d\n", idx); | | ~ | | | | | (82) ...to here | 167 | | 168 | test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (83) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 84-85 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (84) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (85) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 86-98 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (86) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (87) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (88) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (89) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (90) ...to here | 79 | if (ret < 0) | | ~ | | | | | (91) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (92) ...to here | | (93) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(94) ...to here | | (95) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (96) ...to here | | (97) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (98) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file.c: In function 'set_cert': set_x509_key_file.c:80:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | gnutls_global_set_time_function(mytime); | | ~ | | | | | (5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... |...... | 141 | gnutls_certificate_free_credentials(xcred); | | ~ | | | | | (7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... | 144 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (9) ...to here | | (10) following 'true' branch... | 145 | | 146 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (11) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... |...... | 153 | success("Testing store of certificates\n"); | | ~ | | | | | (13) ...to here | 154 | | 155 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-16 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 75 | certfile = get_tmpname(NULL); | | ~ | | | | | (16) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 17-19 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (17) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (18) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (19) ...to here | <------+ | 'set_cert': events 20-25 | |set_x509_key_file.c:75:20: | 75 | certfile = get_tmpname(NULL); | | ^ | | | | | (20) returning to 'set_cert' from 'get_tmpname' | 76 | | 77 | fp = fopen(certfile, "w"); | | ~ | | | | | (21) opened here | 78 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (23) following 'false' branch... | 79 | fail("error in fopen\n"); | 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (24) ...to here | | (25) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (21) | set_x509_key_file.c:80:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | gnutls_global_set_time_function(mytime); | | ~ | | | | | (5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... |...... | 141 | gnutls_certificate_free_credentials(xcred); | | ~ | | | | | (7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... | 144 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (9) ...to here | | (10) following 'true' branch... | 145 | | 146 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (11) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... |...... | 153 | success("Testing store of certificates\n"); | | ~ | | | | | (13) ...to here | 154 | | 155 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-16 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 75 | certfile = get_tmpname(NULL); | | ~ | | | | | (16) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 17-19 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (17) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (18) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (19) ...to here | <------+ | 'set_cert': events 20-27 | |set_x509_key_file.c:75:20: | 75 | certfile = get_tmpname(NULL); | | ^ | | | | | (20) returning to 'set_cert' from 'get_tmpname' | 76 | | 77 | fp = fopen(certfile, "w"); | | ~ | | | | | (21) opened here | 78 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (23) following 'false' branch... | 79 | fail("error in fopen\n"); | 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (24) ...to here | | (25) following 'true' branch... | | (27) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (21) | 81 | assert(fwrite(key->data, 1, key->size, fp) > 0); | | ~ | | | | | (26) ...to here | CCLD x509-cert-callback CCLD alerts CCLD client-sign-md5-rep utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |alerts.c:293:6: | 293 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 294 | { | 295 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 285 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 289 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls12-invalid-key-exchanges CCLD session-rdn-read CCLD tls13-cert-key-exchange CCLD x509-cert-callback-ocsp CCLD gnutls_ocsp_resp_list_import2 CCLD server-sign-md5-rep CCLD privkey-keygen CCLD mini-tls-nonblock CCLD no-signal utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |no-signal.c:234:6: | 234 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 235 | { | 236 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 226 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 230 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD pkcs7-gen CCLD dtls-etm CCLD x509sign-verify-rsa CCLD x509sign-verify-ecdsa CCLD x509sign-verify-gost CCLD cipher-alignment CCLD oids CCLD atfork CCLD prf CCLD psk-file CCLD priority-init2 CCLD post-client-hello-change-prio CCLD status-request CCLD status-request-ok CCLD rfc7633-missing CCLD sign-verify-ext CCLD fallback-scsv CCLD pkcs8-key-decode CCLD urls CCLD dtls-rehandshake-cert CCLD rfc7633-ok CCLD key-usage-rsa CCLD key-usage-ecdhe-rsa CCLD mini-session-verify-function CCLD auto-verify CCLD record-timeouts CCLD mini-dtls-hello-verify-48 CCLD set-default-prio CCLD tls12-anon-upgrade CCLD tlsext-decoding CCLD rsa-psk-cb CCLD gnutls-ids CCLD rehandshake-switch-cert CCLD rehandshake-switch-cert-allow CCLD rehandshake-switch-cert-client CCLD rehandshake-switch-cert-client-allow CCLD handshake-versions CCLD dtls-handshake-versions CCLD dtls-max-record CCLD tls12-max-record CCLD alpn-server-prec CCLD ocsp-filename-memleak CCLD dh-params CCLD rehandshake-ext-secret CCLD pcert-list CCLD session-export-funcs CCLD handshake-false-start CCLD version-checks CCLD key-material-dtls CCLD key-material-set-dtls CCLD name-constraints-merge CCLD crl-basic CCLD crq-basic CCLD send-client-cert CCLD custom-urls-override CCLD hex utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |custom-urls-override.c:274:6: | 274 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 275 | { | 276 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 266 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 270 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD rehandshake-switch-psk-id CCLD rehandshake-switch-srp-id CCLD base64 CCLD srpbase64 CCLD pkcs1-digest-info CCLD set_x509_key CCLD set_x509_key_file_der CCLD set_x509_pkcs12_key CCLD crt_apis utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |set_x509_key.c:222:6: | 222 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 223 | { | 224 | basic(); | | ~ | | | | | (2) calling 'basic' from 'doit' | +--> 'basic': events 3-10 | | 144 | static void basic(void) | | ^ | | | | | (3) entry to 'basic' |...... | 161 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 162 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 163 | | 164 | gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 168 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... |...... | 171 | idx = import_key(x509_cred, &server_key, &server_cert); | | ~ | | | | | (9) ...to here | | (10) calling 'import_key' from 'basic' | +--> 'import_key': events 11-17 | | 87 | static int import_key(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (11) entry to 'import_key' |...... | 96 | assert(gnutls_x509_privkey_init(&key) >= 0); | | ~ | | | | | (12) following 'true' branch... | 97 | | 98 | ret = gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert, | | ~ | | | | | (13) ...to here | 99 | GNUTLS_X509_FMT_PEM, 0); | 100 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 105 | ret = gnutls_x509_privkey_import(key, skey, GNUTLS_X509_FMT_PEM); | | ~ | | | | | (15) ...to here | 106 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 110 | ret = gnutls_certificate_set_x509_key(xcred, crt_list, crt_list_size, | | ~ | | | | | (17) ...to here | <------+ | 'basic': events 18-21 | | 171 | idx = import_key(x509_cred, &server_key, &server_cert); | | ^ | | | | | (18) returning to 'basic' from 'import_key' | 172 | assert(idx == 0); | | ~ | | | | | (19) following 'true' branch... | 173 | | 174 | test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (20) ...to here | | (21) calling 'test_cli_serv' from 'basic' | +--> 'test_cli_serv': events 22-23 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (22) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (23) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 24-36 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (24) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (26) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (27) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (28) ...to here | 79 | if (ret < 0) | | ~ | | | | | (29) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (30) ...to here | | (31) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(32) ...to here | | (33) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (34) ...to here | | (35) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (36) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-22 | |set_x509_pkcs12_key.c:56:6: | 56 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 65 | if (gnutls_fips140_mode_enabled()) { | | ~ | | | | | (2) following 'false' branch... |...... | 69 | global_init(); | | ~ | | | | | (3) ...to here | 70 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... |...... | 73 | ret = gnutls_certificate_set_x509_simple_pkcs12_file( | | ~ | | | | | (5) ...to here | 74 | xcred, certfile, GNUTLS_X509_FMT_PEM, "1234"); | 75 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... |...... | 79 | gnutls_certificate_free_credentials(xcred); | | ~ | | | | | (7) ...to here | 80 | | 81 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (8) following 'true' branch... | 82 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (9) ...to here | | (10) following 'true' branch... | 83 | | 84 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (11) ...to here | 85 | GNUTLS_X509_FMT_PEM); | 86 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... |...... | 89 | certfile = get_tmpname(NULL); | | ~ | | | | | (13) ...to here |...... | 92 | if (fp == NULL) | | ~ | | | | | (14) following 'false' branch... |...... | 95 | assert(fwrite(server_ca3_pkcs12_pem, 1, | | ~ | | | | | (15) ...to here | | (16) following 'true' branch... | 96 | strlen((char *)server_ca3_pkcs12_pem), fp) > 0); | 97 | fclose(fp); | | ~ | | | | | (17) ...to here |...... | 101 | if (ret < 0) | | ~ | | | | | (18) following 'false' branch... |...... | 106 | ret = gnutls_certificate_get_crt_raw(xcred, 0, 0, &tcert); | | ~ | | | | | (19) ...to here | 107 | if (ret < 0) { | | ~ | | | | | (20) following 'false' branch... |...... | 112 | compare(&tcert, server_localhost_ca3_cert_pem); | | ~ | | | | | (21) ...to here | | (22) calling 'compare' from 'doit' | +--> 'compare': events 23-29 | | 36 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (23) entry to 'compare' |...... | 43 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... |...... | 47 | if (der->size != new_der.size || | | ~ ~ ~ | | | | | | | | (25) ...to here (28) following 'false' branch... | | (26) following 'false' branch... | 48 | memcmp(der->data, new_der.data, der->size) != 0) { | | ~ | | | | | (27) ...to here |...... | 52 | gnutls_free(new_der.data); | | ~ | | | | | (29) ...to here | <------+ | 'doit': events 30-31 | | 112 | compare(&tcert, server_localhost_ca3_cert_pem); | | ^ | | | | | (30) returning to 'doit' from 'compare' |...... | 116 | test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (31) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 32-33 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (32) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (33) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 34-46 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (34) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (35) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (36) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (37) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (38) ...to here | 79 | if (ret < 0) | | ~ | | | | | (39) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (40) ...to here | | (41) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(42) ...to here | | (43) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (44) ...to here | | (45) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (46) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_pkcs12_key.c: In function 'doit': set_x509_pkcs12_key.c:95:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 95 | assert(fwrite(server_ca3_pkcs12_pem, 1, | ^ 'doit': events 1-14 | | 56 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 65 | if (gnutls_fips140_mode_enabled()) { | | ~ | | | | | (2) following 'false' branch... |...... | 69 | global_init(); | | ~ | | | | | (3) ...to here | 70 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... |...... | 73 | ret = gnutls_certificate_set_x509_simple_pkcs12_file( | | ~ | | | | | (5) ...to here | 74 | xcred, certfile, GNUTLS_X509_FMT_PEM, "1234"); | 75 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... |...... | 79 | gnutls_certificate_free_credentials(xcred); | | ~ | | | | | (7) ...to here | 80 | | 81 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (8) following 'true' branch... | 82 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (9) ...to here | | (10) following 'true' branch... | 83 | | 84 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (11) ...to here | 85 | GNUTLS_X509_FMT_PEM); | 86 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... |...... | 89 | certfile = get_tmpname(NULL); | | ~ | | | | | (13) ...to here | | (14) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 15-17 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (15) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (16) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (17) ...to here | <------+ | 'doit': events 18-23 | |set_x509_pkcs12_key.c:89:20: | 89 | certfile = get_tmpname(NULL); | | ^ | | | | | (18) returning to 'doit' from 'get_tmpname' | 90 | | 91 | fp = fopen(certfile, "w"); | | ~ | | | | | (19) opened here | 92 | if (fp == NULL) | | ~ | | | | | (20) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (21) following 'false' branch... |...... | 95 | assert(fwrite(server_ca3_pkcs12_pem, 1, | | ~ | | | | | (22) ...to here | | (23) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (19) | utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-8 | |set_x509_key_file_der.c:77:6: | 77 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 87 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... |...... | 92 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 93 | | 94 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca2_cert, | | ~ | | | | | (5) ...to here | 95 | GNUTLS_X509_FMT_PEM); | 96 | if (ret < 0) | | ~ | | | | | (6) following 'false' branch... |...... | 99 | assert(get_tmpname(certfile) != NULL); | | ~ | | | | | (7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-12 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 289 | path = getenv("builddir"); | | ~ | | | | | (11) ...to here |...... | 293 | if (s == NULL) | | ~ | | | | | (12) following 'false' branch (when 's_22(D)' is non-NULL)... | 'get_tmpname': event 13 | |lto1: | (13): ...to here | <------+ | 'doit': events 14-17 | |set_x509_key_file_der.c:99:9: | 99 | assert(get_tmpname(certfile) != NULL); | | ^ | | | | | (14) returning to 'doit' from 'get_tmpname' | | (15) following 'true' branch... | 100 | assert(get_tmpname(keyfile) != NULL); | | ~ | | | | | (16) ...to here | | (17) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 18-21 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (18) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 289 | path = getenv("builddir"); | | ~ | | | | | (20) ...to here |...... | 293 | if (s == NULL) | | ~ | | | | | (21) following 'false' branch (when 's_22(D)' is non-NULL)... | 'get_tmpname': event 22 | |lto1: | (22): ...to here | 'get_tmpname': event 23 | | 302 | append(p); | | ^ | | | | | (23) calling 'append' from 'get_tmpname' | +--> 'append': events 24-25 | | 262 | static void append(const char *file) | | ^ | | | | | (24) entry to 'append' |...... | 266 | if (temp_files == (void *)-1) | | ~ | | | | | (25) following 'true' branch... | 'append': event 26 | |lto1: | (26): ...to here | <------+ | 'get_tmpname': event 27 | | 302 | append(p); | | ^ | | | | | (27) returning to 'get_tmpname' from 'append' | <------+ | 'doit': events 28-31 | |set_x509_key_file_der.c:100:9: | 100 | assert(get_tmpname(keyfile) != NULL); | | ^ | | | | | (28) returning to 'doit' from 'get_tmpname' | | (29) following 'true' branch... | 101 | | 102 | write_der(certfile, "CERTIFICATE", (char *)server2_cert_pem); | | ~ | | | | | (30) ...to here | | (31) calling 'write_der' from 'doit' | +--> 'write_der': events 32-38 | | 56 | static void write_der(const char *file, const char *header, const char *ipem) | | ^ | | | | | (32) entry to 'write_der' |...... | 64 | if (ret < 0) { | | ~ | | | | | (33) following 'false' branch... |...... | 68 | fp = fopen(file, "wb"); | | ~ | | | | | (34) ...to here | 69 | if (fp == NULL) | | ~ | | | | | (35) following 'false' branch... |...... | 72 | assert(fwrite(der.data, 1, der.size, fp) > 0); | | ~ | | | | | (36) ...to here | | (37) following 'true' branch... | 73 | fclose(fp); | | ~ | | | | | (38) ...to here | <------+ | 'doit': events 39-40 | | 102 | write_der(certfile, "CERTIFICATE", (char *)server2_cert_pem); | | ^ | | | | | (39) returning to 'doit' from 'write_der' | 103 | write_der(keyfile, "RSA PRIVATE KEY", (char *)server2_key_pem); | | ~ | | | | | (40) calling 'write_der' from 'doit' | +--> 'write_der': events 41-47 | | 56 | static void write_der(const char *file, const char *header, const char *ipem) | | ^ | | | | | (41) entry to 'write_der' |...... | 64 | if (ret < 0) { | | ~ | | | | | (42) following 'false' branch... |...... | 68 | fp = fopen(file, "wb"); | | ~ | | | | | (43) ...to here | 69 | if (fp == NULL) | | ~ | | | | | (44) following 'false' branch... |...... | 72 | assert(fwrite(der.data, 1, der.size, fp) > 0); | | ~ | | | | | (45) ...to here | | (46) following 'true' branch... | 73 | fclose(fp); | | ~ | | | | | (47) ...to here | <------+ | 'doit': events 48-53 | | 103 | write_der(keyfile, "RSA PRIVATE KEY", (char *)server2_key_pem); | | ^ | | | | | (48) returning to 'doit' from 'write_der' |...... | 107 | if (ret < 0) | | ~ | | | | | (49) following 'false' branch... |...... | 111 | ret = gnutls_certificate_get_crt_raw(xcred, 0, 0, &tcert); | | ~ | | | | | (50) ...to here | 112 | if (ret < 0) { | | ~ | | | | | (51) following 'false' branch... |...... | 117 | compare(&tcert, server2_cert_pem); | | ~ | | | | | (52) ...to here | | (53) calling 'compare' from 'doit' | +--> 'compare': events 54-60 | | 36 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (54) entry to 'compare' |...... | 43 | if (ret < 0) { | | ~ | | | | | (55) following 'false' branch... |...... | 47 | if (der->size != new_der.size || | | ~ ~ ~ | | | | | | | | (56) ...to here (59) following 'false' branch... | | (57) following 'false' branch... | 48 | memcmp(der->data, new_der.data, der->size) != 0) { | | ~ | | | | | (58) ...to here |...... | 52 | gnutls_free(new_der.data); | | ~ | | | | | (60) ...to here | <------+ | 'doit': events 61-62 | | 117 | compare(&tcert, server2_cert_pem); | | ^ | | | | | (61) returning to 'doit' from 'compare' |...... | 122 | test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (62) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 63-64 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (63) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (64) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 65-77 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (65) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (66) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (67) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (68) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (69) ...to here | 79 | if (ret < 0) | | ~ | | | | | (70) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (71) ...to here | | (72) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(73) ...to here | | (74) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (75) ...to here | | (76) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (77) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file_der.c: In function 'write_der': set_x509_key_file_der.c:72:9: warning: leak of FILE 'fopen (file_15(D), "wb")' [CWE-775] [-Wanalyzer-file-leak] 72 | assert(fwrite(der.data, 1, der.size, fp) > 0); | ^ 'write_der': events 1-7 | | 64 | if (ret < 0) { | | ^ | | | | | (1) following 'false' branch... |...... | 68 | fp = fopen(file, "wb"); | | ~ | | | | | (2) ...to here | | (3) opened here | 69 | if (fp == NULL) | | ~ | | | | | (4) assuming 'fopen (file_15(D), "wb")' is non-NULL | | (5) following 'false' branch... |...... | 72 | assert(fwrite(der.data, 1, der.size, fp) > 0); | | ~ | | | | | (6) ...to here | | (7) 'fopen (file_15(D), "wb")' leaks here; was opened at (3) | CCLD tls12-cert-key-exchange CCLD tls11-cert-key-exchange CCLD tls10-cert-key-exchange CCLD ssl30-cert-key-exchange CCLD dtls12-cert-key-exchange CCLD dtls10-cert-key-exchange CCLD x509-cert-callback-legacy CCLD keylog-env CCLD ssl2-hello CCLD tlsfeature-ext CCLD dtls-rehandshake-cert-2 utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |keylog-env.c:152:6: | 152 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 158 | assert(get_tmpname(filename) != NULL); | | ~ | | | | | (2) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 3-6 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (3) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... |...... | 289 | path = getenv("builddir"); | | ~ | | | | | (5) ...to here |...... | 293 | if (s == NULL) | | ~ | | | | | (6) following 'false' branch (when 's_22(D)' is non-NULL)... | 'get_tmpname': event 7 | |lto1: | (7): ...to here | <------+ | 'doit': events 8-11 | |keylog-env.c:158:9: | 158 | assert(get_tmpname(filename) != NULL); | | ^ | | | | | (8) returning to 'doit' from 'get_tmpname' | | (9) following 'true' branch... | 159 | | 160 | remove(filename); | | ~ | | | | | (10) ...to here | 161 | | 162 | run(filename, | | ~ | | | | | (11) calling 'run' from 'doit' | +--> 'run': events 12-21 | | 93 | static void run(const char *filename, const char *prio, const char **included, | | ^ | | | | | (12) entry to 'run' |...... | 117 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (13) following 'true' branch... | 118 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 119 | | 120 | ret = gnutls_certificate_set_x509_key_mem( | | ~ | | | | | (16) ...to here |...... | 123 | if (ret < 0) { | | ~ | | | | | (17) following 'false' branch... |...... | 128 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (18) ...to here | 129 | GNUTLS_X509_FMT_PEM); | 130 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 133 | test_cli_serv(x509_cred, clicred, prio, "localhost", NULL, NULL, NULL); | | ~ | | | | | (20) ...to here | | (21) calling 'test_cli_serv' from 'run' | +--> 'test_cli_serv': events 22-23 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (22) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (23) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 24-36 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (24) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (26) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (27) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (28) ...to here | 79 | if (ret < 0) | | ~ | | | | | (29) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (30) ...to here | | (31) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(32) ...to here | | (33) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (34) ...to here | | (35) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (36) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD dtls-session-ticket-lost CCLD tlsfeature-crt CCLD dtls-rehandshake-cert-3 CCLD resume-with-false-start CCLD set_x509_key_file_ocsp CCLD client-fastopen CCLD rng-sigint CCLD srp CC safe-renegotiation/srn0.o CC safe-renegotiation/srn1.o CC safe-renegotiation/srn2.o CC safe-renegotiation/srn3.o CC safe-renegotiation/srn4.o CC safe-renegotiation/srn5.o CCLD rsa-illegal-import CCLD set_x509_ocsp_multi_invalid CCLD set_key utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 239 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 240 | | 241 | certfile = get_tmpname(certname); | | ~ | | | | | (7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-27 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 244 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 245 | fail("error in fopen\n"); | 246 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 247 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 249 | fp) > 0); | 250 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 255 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 258 | fp = fopen(certfile, "wb"); | | ~ | | | | | (20) ...to here | 259 | if (fp == NULL) | | ~ | | | | | (21) following 'false' branch... | 260 | fail("error in fopen\n"); | 261 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (22) ...to here | | (23) following 'true' branch... | 262 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 263 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (24) ...to here | | (25) following 'true' branch... | 264 | fp) > 0); | 265 | fclose(fp); | | ~ | | | | | (26) ...to here |...... | 271 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (27) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 28-30 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (28) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (29) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (30) ...to here | <------+ | 'doit': events 31-48 | |set_x509_key_file_ocsp.c:271:21: | 271 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (31) returning to 'doit' from 'get_tmpname' | 272 | fp = fopen(ocspfile1, "wb"); | 273 | if (fp == NULL) | | ~ | | | | | (32) following 'false' branch... | 274 | fail("error in fopen\n"); | 275 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | | ~ | | | | | (33) ...to here | | (34) following 'true' branch... | 276 | fclose(fp); | | ~ | | | | | (35) ...to here |...... | 280 | if (ret < 0) | | ~ | | | | | (36) following 'false' branch... |...... | 283 | t = gnutls_certificate_get_ocsp_expiration(xcred, 0, 0, 0); | | ~ | | | | | (37) ...to here | 284 | if (t != 1511689427) | | ~ | | | | | (38) following 'false' branch... |...... | 287 | t = gnutls_certificate_get_ocsp_expiration(xcred, 0, 1, 0); | | ~ | | | | | (39) ...to here | 288 | if (t != -1) | | ~ | | | | | (40) following 'false' branch... |...... | 291 | t = gnutls_certificate_get_ocsp_expiration(xcred, 0, -1, 0); | | ~ | | | | | (41) ...to here | 292 | if (t != 1511689427) | | ~ | | | | | (42) following 'false' branch... |...... | 297 | gnutls_certificate_set_verify_flags(clicred, | | ~ | | | | | (43) ...to here | 298 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 299 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (44) following 'false' branch... |...... | 303 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (45) ...to here | 304 | GNUTLS_X509_FMT_PEM); | 305 | if (ret < 0) { | | ~ | | | | | (46) following 'false' branch... |...... | 309 | test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", | | ~ | | | | | (47) ...to here | | (48) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 49-50 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (49) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (50) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 51-63 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (51) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (52) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (53) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (54) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (55) ...to here | 79 | if (ret < 0) | | ~ | | | | | (56) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (57) ...to here | | (58) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(59) ...to here | | (60) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (61) ...to here | | (62) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (63) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file_ocsp.c: In function 'doit': set_x509_key_file_ocsp.c:246:9: warning: leak of FILE 'fopen (get_tmpname (&certname), "wb")' [CWE-775] [-Wanalyzer-file-leak] 246 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 239 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 240 | | 241 | certfile = get_tmpname(certname); | | ~ | | | | | (7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 242 | | 243 | fp = fopen(certfile, "wb"); | | ~ | | | | | (13) opened here | 244 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname), "wb")' is non-NULL | | (15) following 'false' branch... | 245 | fail("error in fopen\n"); | 246 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) 'fopen (get_tmpname (&certname), "wb")' leaks here; was opened at (13) | set_x509_key_file_ocsp.c:248:9: warning: leak of FILE 'fopen (get_tmpname (&certname), "wb")' [CWE-775] [-Wanalyzer-file-leak] 248 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 239 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 240 | | 241 | certfile = get_tmpname(certname); | | ~ | | | | | (7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 242 | | 243 | fp = fopen(certfile, "wb"); | | ~ | | | | | (13) opened here | 244 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname), "wb")' is non-NULL | | (15) following 'false' branch... | 245 | fail("error in fopen\n"); | 246 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 247 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (18) ...to here | | (19) 'fopen (get_tmpname (&certname), "wb")' leaks here; was opened at (13) | set_x509_key_file_ocsp.c:261:9: warning: leak of FILE 'fopen (get_tmpname (&certname), "wb")' [CWE-775] [-Wanalyzer-file-leak] 261 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 239 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 240 | | 241 | certfile = get_tmpname(certname); | | ~ | | | | | (7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-25 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 244 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 245 | fail("error in fopen\n"); | 246 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 247 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 249 | fp) > 0); | 250 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 255 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 258 | fp = fopen(certfile, "wb"); | | ~ | | | | | (20) ...to here | | (21) opened here | 259 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (&certname), "wb")' is non-NULL | | (23) following 'false' branch... | 260 | fail("error in fopen\n"); | 261 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (24) ...to here | | (25) 'fopen (get_tmpname (&certname), "wb")' leaks here; was opened at (21) | CCLD set_x509_key_file_ocsp_multi2 set_x509_key_file_ocsp.c:263:9: warning: leak of FILE 'fopen (get_tmpname (&certname), "wb")' [CWE-775] [-Wanalyzer-file-leak] 263 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 239 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 240 | | 241 | certfile = get_tmpname(certname); | | ~ | | | | | (7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-27 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 244 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 245 | fail("error in fopen\n"); | 246 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 247 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 249 | fp) > 0); | 250 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 255 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 258 | fp = fopen(certfile, "wb"); | | ~ | | | | | (20) ...to here | | (21) opened here | 259 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (&certname), "wb")' is non-NULL | | (23) following 'false' branch... | 260 | fail("error in fopen\n"); | 261 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (24) ...to here | | (25) following 'true' branch... | 262 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 263 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (26) ...to here | | (27) 'fopen (get_tmpname (&certname), "wb")' leaks here; was opened at (21) | set_x509_key_file_ocsp.c:275:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 275 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 239 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 240 | | 241 | certfile = get_tmpname(certname); | | ~ | | | | | (7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-27 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 244 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 245 | fail("error in fopen\n"); | 246 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 247 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 249 | fp) > 0); | 250 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 255 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 258 | fp = fopen(certfile, "wb"); | | ~ | | | | | (20) ...to here | 259 | if (fp == NULL) | | ~ | | | | | (21) following 'false' branch... | 260 | fail("error in fopen\n"); | 261 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (22) ...to here | | (23) following 'true' branch... | 262 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 263 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (24) ...to here | | (25) following 'true' branch... | 264 | fp) > 0); | 265 | fclose(fp); | | ~ | | | | | (26) ...to here |...... | 271 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (27) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 28-30 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (28) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (29) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (30) ...to here | <------+ | 'doit': events 31-36 | |set_x509_key_file_ocsp.c:271:21: | 271 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (31) returning to 'doit' from 'get_tmpname' | 272 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (32) opened here | 273 | if (fp == NULL) | | ~ | | | | | (33) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (34) following 'false' branch... | 274 | fail("error in fopen\n"); | 275 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | | ~ | | | | | (35) ...to here | | (36) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (32) | CCLD set_x509_ocsp_multi_unknown utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |set_key.c:327:6: | 327 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 328 | { | 329 | basic(); | | ~ | | | | | (2) calling 'basic' from 'doit' | +--> 'basic': events 3-10 | | 125 | static void basic(void) | | ^ | | | | | (3) entry to 'basic' |...... | 142 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 143 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 144 | | 145 | gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... |...... | 152 | idx = import_key(x509_cred, &server_key, &server_cert); | | ~ | | | | | (9) ...to here | | (10) calling 'import_key' from 'basic' | +--> 'import_key': events 11-19 | | 66 | static unsigned import_key(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (11) entry to 'import_key' |...... | 77 | assert(gnutls_privkey_init(&key) >= 0); | | ~ | | | | | (12) following 'true' branch... | 78 | | 79 | pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]); | | ~ | | | | | (13) ...to here |...... | 82 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 87 | ret = gnutls_privkey_import_x509_raw(key, skey, GNUTLS_X509_FMT_PEM, | | ~ | | | | | (15) ...to here | 88 | NULL, 0); | 89 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 93 | ret = gnutls_certificate_set_key(xcred, names, 2, pcert_list, | | ~ | | | | | (17) ...to here | 94 | pcert_list_size, key); | 95 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... |...... | 102 | idx = ret; | | ~ | | | | | (19) ...to here | <------+ | 'basic': events 20-23 | | 152 | idx = import_key(x509_cred, &server_key, &server_cert); | | ^ | | | | | (20) returning to 'basic' from 'import_key' | 153 | assert(idx == 0); | | ~ | | | | | (21) following 'true' branch... | 154 | | 155 | test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (22) ...to here | | (23) calling 'test_cli_serv' from 'basic' | +--> 'test_cli_serv': events 24-25 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (24) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (25) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 26-38 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (26) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (28) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (29) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (30) ...to here | 79 | if (ret < 0) | | ~ | | | | | (31) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (32) ...to here | | (33) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(34) ...to here | | (35) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (36) ...to here | | (37) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (38) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD set_x509_ocsp_multi_pem utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 123 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 124 | | 125 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 132 | fail("error in fopen\n"); | 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 134 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 136 | fp) > 0); | 137 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 142 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-52 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | 148 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 151 | ocsp_subca3_unknown_pem.size, fp) > 0); | 152 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 153 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 154 | assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | | (32) following 'true' branch... | 155 | ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 156 | fclose(fp); | | ~ | | | | | (33) ...to here |...... | 160 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... |...... | 164 | remove(ocspfile1); | | ~ | | | | | (35) ...to here | 165 | fp = fopen(ocspfile1, "wb"); | 166 | if (fp == NULL) | | ~ | | | | | (36) following 'false' branch... | 167 | fail("error in fopen\n"); | 168 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 169 | ocsp_subca3_unknown_pem.size, fp) > 0); | 170 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (39) ...to here | | (40) following 'true' branch... | 171 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 172 | fclose(fp); | | ~ | | | | | (41) ...to here |...... | 176 | if (ret < 0) | | ~ | | | | | (42) following 'false' branch... |...... | 179 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (43) ...to here | 180 | GNUTLS_X509_FMT_PEM); | 181 | if (ret < 0) { | | ~ | | | | | (44) following 'false' branch... |...... | 185 | t = gnutls_certificate_get_ocsp_expiration(xcred, 0, 0, 0); | | ~ | | | | | (45) ...to here | 186 | if (t != 1509625639) | | ~ | | | | | (46) following 'false' branch... |...... | 189 | t = gnutls_certificate_get_ocsp_expiration(xcred, 0, 1, 0); | | ~ | | | | | (47) ...to here | 190 | if (t != 1509625639) | | ~ | | | | | (48) following 'false' branch... |...... | 193 | t = gnutls_certificate_get_ocsp_expiration(xcred, 0, -1, 0); | | ~ | | | | | (49) ...to here | 194 | if (t != 1509625639) | | ~ | | | | | (50) following 'false' branch... |...... | 197 | test_cli_serv(xcred, clicred, | | ~ | | | | | (51) ...to here | | (52) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 53-54 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (53) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (54) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 55-67 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (55) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (56) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (57) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (58) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (59) ...to here | 79 | if (ret < 0) | | ~ | | | | | (60) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (61) ...to here | | (62) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(63) ...to here | | (64) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (65) ...to here | | (66) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (67) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ set_x509_ocsp_multi_pem.c: In function 'doit': set_x509_ocsp_multi_pem.c:133:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 123 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 124 | | 125 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 130 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 131 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 132 | fail("error in fopen\n"); | 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_pem.c:135:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 123 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 124 | | 125 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 130 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 131 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 132 | fail("error in fopen\n"); | 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 134 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_pem.c:150:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 123 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 124 | | 125 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 132 | fail("error in fopen\n"); | 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 134 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 136 | fp) > 0); | 137 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 142 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 148 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_pem.c:150:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 123 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 124 | | 125 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 132 | fail("error in fopen\n"); | 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 134 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 136 | fp) > 0); | 137 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 142 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 148 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | | (32) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | 151 | ocsp_subca3_unknown_pem.size, fp) > 0); | 152 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | set_x509_ocsp_multi_pem.c:150:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 123 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 124 | | 125 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 132 | fail("error in fopen\n"); | 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 134 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 136 | fp) > 0); | 137 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 142 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 148 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | | (34) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | 151 | ocsp_subca3_unknown_pem.size, fp) > 0); | 152 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | | (32) following 'true' branch... | 153 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 154 | assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | | ~ | | | | | (33) ...to here | set_x509_ocsp_multi_pem.c:168:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 168 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 123 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 124 | | 125 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 132 | fail("error in fopen\n"); | 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 134 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 136 | fp) > 0); | 137 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 142 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | 148 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 151 | ocsp_subca3_unknown_pem.size, fp) > 0); | 152 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 153 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 154 | assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | | (32) following 'true' branch... | 155 | ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 156 | fclose(fp); | | ~ | | | | | (33) ...to here |...... | 160 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... |...... | 164 | remove(ocspfile1); | | ~ | | | | | (35) ...to here | 165 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (36) opened here | 166 | if (fp == NULL) | | ~ | | | | | (37) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (38) following 'false' branch... | 167 | fail("error in fopen\n"); | 168 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (39) ...to here | | (40) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (36) | set_x509_ocsp_multi_pem.c:168:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 168 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 123 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 124 | | 125 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 132 | fail("error in fopen\n"); | 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 134 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 136 | fp) > 0); | 137 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 142 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-42 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | 148 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 151 | ocsp_subca3_unknown_pem.size, fp) > 0); | 152 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 153 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 154 | assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | | (32) following 'true' branch... | 155 | ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 156 | fclose(fp); | | ~ | | | | | (33) ...to here |...... | 160 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... |...... | 164 | remove(ocspfile1); | | ~ | | | | | (35) ...to here | 165 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (36) opened here | 166 | if (fp == NULL) | | ~ | | | | | (37) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (38) following 'false' branch... | 167 | fail("error in fopen\n"); | 168 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (39) ...to here | | (40) following 'true' branch... | | (42) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (36) | 169 | ocsp_subca3_unknown_pem.size, fp) > 0); | 170 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (41) ...to here | 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 162 | fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 168 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 175 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 177 | fp) > 0); | 178 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-71 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 184 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 185 | fail("error in fopen\n"); | 186 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 187 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 188 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 192 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 193 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 194 | index3 = ret; | | ~ | | | | | (52) ...to here |...... | 197 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... | 198 | fail("error in fopen\n"); | 199 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (54) ...to here | | (55) following 'true' branch... | 200 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 201 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (56) ...to here | | (57) following 'true' branch... | 202 | fp) > 0); | 203 | fclose(fp); | | ~ | | | | | (58) ...to here |...... | 208 | if (ret < 0) | | ~ | | | | | (59) following 'false' branch... |...... | 212 | ret = gnutls_certificate_set_ocsp_status_request_function2( | | ~ | | | | | (60) ...to here | 213 | xcred, index2, ocsp_func, &ocsp_resp2); | 214 | if (ret < 0) | | ~ | | | | | (61) following 'false' branch... |...... | 218 | ret = gnutls_certificate_set_ocsp_status_request_function2( | | ~ | | | | | (62) ...to here | 219 | xcred, index3, ocsp_func, &ocsp_resp3); | 220 | if (ret < 0) | | ~ | | | | | (63) following 'false' branch... |...... | 224 | assert(gnutls_certificate_set_ocsp_status_request_function2( | | ~ | | | | | (64) ...to here | | (65) following 'true' branch... |...... | 230 | gnutls_certificate_set_verify_flags(clicred, | | ~ | | | | | (66) ...to here | 231 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 232 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (67) following 'false' branch... |...... | 236 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (68) ...to here | 237 | GNUTLS_X509_FMT_PEM); | 238 | if (ret < 0) { | | ~ | | | | | (69) following 'false' branch... |...... | 242 | success("TLS1.2 + resp1\n"); | | ~ | | | | | (70) ...to here | 243 | test_cli_serv(xcred, clicred, | | ~ | | | | | (71) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 72-73 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (72) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (73) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 74-86 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (74) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (75) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (76) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (77) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (78) ...to here | 79 | if (ret < 0) | | ~ | | | | | (79) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (80) ...to here | | (81) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(82) ...to here | | (83) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (84) ...to here | | (85) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (86) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file_ocsp_multi2.c: In function 'doit': set_x509_key_file_ocsp_multi2.c:141:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 138 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 139 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_key_file_ocsp_multi2.c:143:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 138 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 139 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_key_file_ocsp_multi2.c:159:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 155 | | 156 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 157 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_key_file_ocsp_multi2.c:161:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 155 | | 156 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 157 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 160 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_key_file_ocsp_multi2.c:174:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-38 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 162 | fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 168 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 | index2 = ret; | | ~ | | | | | (33) ...to here | 170 | | 171 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (34) opened here | 172 | if (fp == NULL) | | ~ | | | | | (35) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (36) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (37) ...to here | | (38) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (34) | set_x509_key_file_ocsp_multi2.c:176:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 176 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 162 | fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 168 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 | index2 = ret; | | ~ | | | | | (33) ...to here | 170 | | 171 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (34) opened here | 172 | if (fp == NULL) | | ~ | | | | | (35) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (36) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 175 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (39) ...to here | | (40) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (34) | set_x509_key_file_ocsp_multi2.c:186:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 186 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 127 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 129 | fp) > 0); | 130 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 135 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 143 | fail("error in fopen\n"); | 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 145 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 147 | fp) > 0); | 148 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 153 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (37) ...to here | <------+ | 'doit': events 38-45 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | 159 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... | 160 | fail("error in fopen\n"); | 161 | assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | | ~ | | | | | (40) ...to here | | (41) following 'true' branch... | 162 | ocsp_ca3_localhost_unknown.size, fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (42) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... |...... | 171 | ocspfile2 = get_tmpname(ocspname2); | | ~ | | | | | (44) ...to here | | (45) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 46-48 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (46) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (47) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (48) ...to here | <------+ | 'doit': events 49-56 | |set_x509_ocsp_multi_unknown.c:171:21: | 171 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (49) returning to 'doit' from 'get_tmpname' | 172 | fp = fopen(ocspfile2, "wb"); | 173 | if (fp == NULL) | | ~ | | | | | (50) following 'false' branch... | 174 | fail("error in fopen\n"); | 175 | assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | | ~ | | | | | (51) ...to here | | (52) following 'true' branch... | 176 | ocsp_ca3_localhost6_unknown.size, fp) > 0); | 177 | fclose(fp); | | ~ | | | | | (53) ...to here |...... | 181 | if (ret < 0) | | ~ | | | | | (54) following 'false' branch... |...... | 185 | ocspfile3 = get_tmpname(ocspname3); | | ~ | | | | | (55) ...to here | | (56) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 57-59 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (57) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (58) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (59) ...to here | <------+ | 'doit': events 60-81 | |set_x509_ocsp_multi_unknown.c:185:21: | 185 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (60) returning to 'doit' from 'get_tmpname' | 186 | fp = fopen(ocspfile3, "wb"); | 187 | if (fp == NULL) | | ~ | | | | | (61) following 'false' branch... | 188 | fail("error in fopen\n"); | 189 | assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, | | ~ | | | | | (62) ...to here | | (63) following 'true' branch... | 190 | ocsp_ca3_localhost_unknown_sha1.size, fp) > 0); | 191 | fclose(fp); | | ~ | | | | | (64) ...to here |...... | 195 | if (ret != 0) | | ~ | | | | | (65) following 'false' branch... |...... | 199 | ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, | | ~ | | | | | (66) ...to here | 200 | index2); | 201 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (67) following 'false' branch... |...... | 206 | ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, | | ~ | | | | | (68) ...to here | 207 | index1); | 208 | if (ret < 0) | | ~ | | | | | (69) following 'false' branch... |...... | 212 | fp = fopen(ocspfile3, "wb"); | | ~ | | | | | (70) ...to here | 213 | if (fp == NULL) | | ~ | | | | | (71) following 'false' branch... | 214 | fail("error in fopen\n"); | 215 | assert(fwrite(ocsp_subca3_unknown.data, 1, ocsp_subca3_unknown.size, | | ~ | | | | | (72) ...to here | | (73) following 'true' branch... | 216 | fp) > 0); | 217 | fclose(fp); | | ~ | | | | | (74) ...to here |...... | 221 | if (ret < 0) | | ~ | | | | | (75) following 'false' branch... |...... | 224 | ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, | | ~ | | | | | (76) ...to here | 225 | index2); | 226 | if (ret < 0) | | ~ | | | | | (77) following 'false' branch... |...... | 229 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (78) ...to here | 230 | GNUTLS_X509_FMT_PEM); | 231 | if (ret < 0) { | | ~ | | | | | (79) following 'false' branch... |...... | 235 | test_cli_serv(xcred, clicred, | | ~ | | | | | (80) ...to here | | (81) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 82-83 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (82) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (83) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 84-96 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (84) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (85) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (86) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (87) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (88) ...to here | 79 | if (ret < 0) | | ~ | | | | | (89) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (90) ...to here | | (91) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(92) ...to here | | (93) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (94) ...to here | | (95) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (96) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_ocsp_multi_unknown.c: In function 'doit': set_x509_ocsp_multi_unknown.c:126:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 122 | | 123 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 124 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_unknown.c:128:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 122 | | 123 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 124 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 127 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_unknown.c:144:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 127 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 129 | fp) > 0); | 130 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 135 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 140 | | 141 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 142 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 143 | fail("error in fopen\n"); | 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_unknown.c:146:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 146 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 127 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 129 | fp) > 0); | 130 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 135 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 140 | | 141 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 142 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 143 | fail("error in fopen\n"); | 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 145 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 162 | fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 168 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 175 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 177 | fp) > 0); | 178 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-49 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' | 182 | | 183 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (45) opened here | 184 | if (fp == NULL) | | ~ | | | | | (46) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (47) following 'false' branch... | 185 | fail("error in fopen\n"); | 186 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (45) | set_x509_ocsp_multi_unknown.c:161:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 161 | assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | ^ set_x509_key_file_ocsp_multi2.c:187:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 187 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 127 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 129 | fp) > 0); | 130 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 135 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 143 | fail("error in fopen\n"); | 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 145 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 147 | fp) > 0); | 148 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 153 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (37) ...to here | <------+ | 'doit': events 38-43 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (39) opened here | 159 | if (fp == NULL) | | ~ | | | | | (40) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (41) following 'false' branch... | 160 | fail("error in fopen\n"); | 161 | assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | | ~ | | | | | (42) ...to here | | (43) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (39) | set_x509_ocsp_multi_unknown.c:175:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 175 | assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 127 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 129 | fp) > 0); | 130 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 135 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 143 | fail("error in fopen\n"); | 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 145 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 147 | fp) > 0); | 148 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 153 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (37) ...to here | <------+ | 'doit': events 38-45 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | 159 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... | 160 | fail("error in fopen\n"); | 161 | assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | | ~ | | | | | (40) ...to here | | (41) following 'true' branch... | 162 | ocsp_ca3_localhost_unknown.size, fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (42) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... |...... | 171 | ocspfile2 = get_tmpname(ocspname2); | | ~ | | | | | (44) ...to here | | (45) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 46-48 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (46) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (47) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (48) ...to here | <------+ | 'doit': events 49-54 | |set_x509_ocsp_multi_unknown.c:171:21: | 171 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (49) returning to 'doit' from 'get_tmpname' | 172 | fp = fopen(ocspfile2, "wb"); | | ~ | | | | | (50) opened here | 173 | if (fp == NULL) | | ~ | | | | | (51) assuming 'fopen (get_tmpname (&ocspname2), "wb")' is non-NULL | | (52) following 'false' branch... | 174 | fail("error in fopen\n"); | 175 | assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | | ~ | | | | | (53) ...to here | | (54) 'fopen (get_tmpname (&ocspname2), "wb")' leaks here; was opened at (50) | set_x509_ocsp_multi_unknown.c:189:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 189 | assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 127 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 129 | fp) > 0); | 130 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 135 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 143 | fail("error in fopen\n"); | 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 145 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 147 | fp) > 0); | 148 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 153 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (37) ...to here | <------+ | 'doit': events 38-45 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | 159 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... | 160 | fail("error in fopen\n"); | 161 | assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | | ~ | | | | | (40) ...to here | | (41) following 'true' branch... | 162 | ocsp_ca3_localhost_unknown.size, fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (42) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... |...... | 171 | ocspfile2 = get_tmpname(ocspname2); | | ~ | | | | | (44) ...to here | | (45) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 46-48 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (46) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (47) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (48) ...to here | <------+ | 'doit': events 49-56 | |set_x509_ocsp_multi_unknown.c:171:21: | 171 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (49) returning to 'doit' from 'get_tmpname' | 172 | fp = fopen(ocspfile2, "wb"); | 173 | if (fp == NULL) | | ~ | | | | | (50) following 'false' branch... | 174 | fail("error in fopen\n"); | 175 | assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | | ~ | | | | | (51) ...to here | | (52) following 'true' branch... | 176 | ocsp_ca3_localhost6_unknown.size, fp) > 0); | 177 | fclose(fp); | | ~ | | | | | (53) ...to here |...... | 181 | if (ret < 0) | | ~ | | | | | (54) following 'false' branch... |...... | 185 | ocspfile3 = get_tmpname(ocspname3); | | ~ | | | | | (55) ...to here | | (56) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 57-59 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (57) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (58) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (59) ...to here | <------+ | 'doit': events 60-65 | |set_x509_ocsp_multi_unknown.c:185:21: | 185 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (60) returning to 'doit' from 'get_tmpname' | 186 | fp = fopen(ocspfile3, "wb"); | | ~ | | | | | (61) opened here | 187 | if (fp == NULL) | | ~ | | | | | (62) assuming 'fopen (get_tmpname (&ocspname3), "wb")' is non-NULL | | (63) following 'false' branch... | 188 | fail("error in fopen\n"); | 189 | assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, | | ~ | | | | | (64) ...to here | | (65) 'fopen (get_tmpname (&ocspname3), "wb")' leaks here; was opened at (61) | set_x509_ocsp_multi_unknown.c:215:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 215 | assert(fwrite(ocsp_subca3_unknown.data, 1, ocsp_subca3_unknown.size, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 162 | fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 168 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 175 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 177 | fp) > 0); | 178 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-51 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' | 182 | | 183 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (45) opened here | 184 | if (fp == NULL) | | ~ | | | | | (46) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (47) following 'false' branch... | 185 | fail("error in fopen\n"); | 186 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 187 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (50) ...to here | | (51) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (45) | 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 116 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 117 | | 118 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 125 | fail("error in fopen\n"); | 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 127 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 129 | fp) > 0); | 130 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 135 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 143 | fail("error in fopen\n"); | 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 145 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 147 | fp) > 0); | 148 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 153 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (37) ...to here | <------+ | 'doit': events 38-45 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | 159 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... | 160 | fail("error in fopen\n"); | 161 | assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | | ~ | | | | | (40) ...to here | | (41) following 'true' branch... | 162 | ocsp_ca3_localhost_unknown.size, fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (42) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... |...... | 171 | ocspfile2 = get_tmpname(ocspname2); | | ~ | | | | | (44) ...to here | | (45) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 46-48 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (46) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (47) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (48) ...to here | <------+ | 'doit': events 49-56 | |set_x509_ocsp_multi_unknown.c:171:21: | 171 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (49) returning to 'doit' from 'get_tmpname' | 172 | fp = fopen(ocspfile2, "wb"); | 173 | if (fp == NULL) | | ~ | | | | | (50) following 'false' branch... | 174 | fail("error in fopen\n"); | 175 | assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | | ~ | | | | | (51) ...to here | | (52) following 'true' branch... | 176 | ocsp_ca3_localhost6_unknown.size, fp) > 0); | 177 | fclose(fp); | | ~ | | | | | (53) ...to here |...... | 181 | if (ret < 0) | | ~ | | | | | (54) following 'false' branch... |...... | 185 | ocspfile3 = get_tmpname(ocspname3); | | ~ | | | | | (55) ...to here | | (56) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 57-59 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (57) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (58) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (59) ...to here | <------+ | 'doit': events 60-75 | |set_x509_ocsp_multi_unknown.c:185:21: | 185 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (60) returning to 'doit' from 'get_tmpname' | 186 | fp = fopen(ocspfile3, "wb"); | 187 | if (fp == NULL) | | ~ | | | | | (61) following 'false' branch... | 188 | fail("error in fopen\n"); | 189 | assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, | | ~ | | | | | (62) ...to here | | (63) following 'true' branch... | 190 | ocsp_ca3_localhost_unknown_sha1.size, fp) > 0); | 191 | fclose(fp); | | ~ | | | | | (64) ...to here |...... | 195 | if (ret != 0) | | ~ | | | | | (65) following 'false' branch... |...... | 199 | ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, | | ~ | | | | | (66) ...to here | 200 | index2); | 201 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (67) following 'false' branch... |...... | 206 | ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, | | ~ | | | | | (68) ...to here | 207 | index1); | 208 | if (ret < 0) | | ~ | | | | | (69) following 'false' branch... |...... | 212 | fp = fopen(ocspfile3, "wb"); | | ~ | | | | | (70) ...to here | | (71) opened here | 213 | if (fp == NULL) | | ~ | | | | | (72) assuming 'fopen (get_tmpname (&ocspname3), "wb")' is non-NULL | | (73) following 'false' branch... | 214 | fail("error in fopen\n"); | 215 | assert(fwrite(ocsp_subca3_unknown.data, 1, ocsp_subca3_unknown.size, | | ~ | | | | | (74) ...to here | | (75) 'fopen (get_tmpname (&ocspname3), "wb")' leaks here; was opened at (71) | set_x509_key_file_ocsp_multi2.c:199:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 199 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 162 | fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 168 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 175 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 177 | fp) > 0); | 178 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-57 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 184 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 185 | fail("error in fopen\n"); | 186 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 187 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 188 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 192 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 193 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 194 | index3 = ret; | | ~ | | | | | (52) ...to here | 195 | | 196 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (53) opened here | 197 | if (fp == NULL) | | ~ | | | | | (54) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (55) following 'false' branch... | 198 | fail("error in fopen\n"); | 199 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (56) ...to here | | (57) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (53) | set_x509_key_file_ocsp_multi2.c:201:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 201 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 131 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 132 | | 133 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 140 | fail("error in fopen\n"); | 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 142 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 144 | fp) > 0); | 145 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 150 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 162 | fp) > 0); | 163 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 168 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 175 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 177 | fp) > 0); | 178 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 184 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 185 | fail("error in fopen\n"); | 186 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 187 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 188 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 192 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 193 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 194 | index3 = ret; | | ~ | | | | | (52) ...to here | 195 | | 196 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (53) opened here | 197 | if (fp == NULL) | | ~ | | | | | (54) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (55) following 'false' branch... | 198 | fail("error in fopen\n"); | 199 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (56) ...to here | | (57) following 'true' branch... | 200 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 201 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (58) ...to here | | (59) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (53) | CCLD tls-ext-not-in-dtls CCLD set_key_utf8 CCLD set_x509_key_utf8 utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 165 | fp) > 0); | 166 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 176 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 181 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 | index3 = ret; | | ~ | | | | | (52) ...to here |...... | 185 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (54) ...to here | | (55) following 'true' branch... | 188 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (56) ...to here | | (57) following 'true' branch... | 190 | fp) > 0); | 191 | fclose(fp); | | ~ | | | | | (58) ...to here |...... | 194 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (59) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 60-62 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (60) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (61) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (62) ...to here | <------+ | 'doit': events 63-72 | |set_x509_ocsp_multi_invalid.c:194:21: | 194 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (63) returning to 'doit' from 'get_tmpname' | 195 | fp = fopen(ocspfile1, "wb"); | 196 | if (fp == NULL) | | ~ | | | | | (64) following 'false' branch... | 197 | fail("error in fopen\n"); | 198 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | | ~ | | | | | (65) ...to here | | (66) following 'true' branch... | 199 | fclose(fp); | | ~ | | | | | (67) ...to here |...... | 203 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (68) following 'false' branch... |...... | 207 | gnutls_certificate_set_flags( | | ~ | | | | | (69) ...to here |...... | 213 | if (ret < 0) | | ~ | | | | | (70) following 'false' branch... |...... | 217 | ocspfile2 = get_tmpname(ocspname2); | | ~ | | | | | (71) ...to here | | (72) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 73-75 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (73) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (74) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (75) ...to here | <------+ | 'doit': events 76-83 | |set_x509_ocsp_multi_invalid.c:217:21: | 217 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (76) returning to 'doit' from 'get_tmpname' | 218 | fp = fopen(ocspfile2, "wb"); | 219 | if (fp == NULL) | | ~ | | | | | (77) following 'false' branch... | 220 | fail("error in fopen\n"); | 221 | assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0); | | ~ | | | | | (78) ...to here | | (79) following 'true' branch... | 222 | fclose(fp); | | ~ | | | | | (80) ...to here |...... | 226 | if (ret < 0) | | ~ | | | | | (81) following 'false' branch... |...... | 230 | ocspfile3 = get_tmpname(ocspname3); | | ~ | | | | | (82) ...to here | | (83) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 84-86 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (84) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (85) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (86) ...to here | <------+ | 'doit': events 87-100 | |set_x509_ocsp_multi_invalid.c:230:21: | 230 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (87) returning to 'doit' from 'get_tmpname' | 231 | fp = fopen(ocspfile3, "wb"); | 232 | if (fp == NULL) | | ~ | | | | | (88) following 'false' branch... | 233 | fail("error in fopen\n"); | 234 | assert(fwrite(ocsp_resp3.data, 1, ocsp_resp3.size, fp) > 0); | | ~ | | | | | (89) ...to here | | (90) following 'true' branch... | 235 | fclose(fp); | | ~ | | | | | (91) ...to here |...... | 239 | if (ret < 0) | | ~ | | | | | (92) following 'false' branch... |...... | 243 | assert(gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, | | ~ | | | | | (93) ...to here | | (94) following 'true' branch... |...... | 249 | gnutls_certificate_set_verify_flags(clicred, | | ~ | | | | | (95) ...to here | 250 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 251 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (96) following 'false' branch... |...... | 255 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (97) ...to here | 256 | GNUTLS_X509_FMT_PEM); | 257 | if (ret < 0) { | | ~ | | | | | (98) following 'false' branch... |...... | 261 | test_cli_serv(xcred, clicred, | | ~ | | | | | (99) ...to here | | (100) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 101-102 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (101) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (102) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 103-115 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (103) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (104) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (105) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (106) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (107) ...to here | 79 | if (ret < 0) | | ~ | | | | | (108) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (109) ...to here | | (110) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(111) ...to here | | (112) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (113) ...to here | | (114) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (115) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_ocsp_multi_invalid.c: In function 'doit': set_x509_ocsp_multi_invalid.c:129:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 126 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 127 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_invalid.c:131:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 126 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 127 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_invalid.c:147:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 143 | | 144 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 145 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_invalid.c:149:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 143 | | 144 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 145 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_invalid.c:162:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-38 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here | 158 | | 159 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (34) opened here | 160 | if (fp == NULL) | | ~ | | | | | (35) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (36) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (37) ...to here | | (38) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (34) | set_x509_ocsp_multi_invalid.c:164:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here | 158 | | 159 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (34) opened here | 160 | if (fp == NULL) | | ~ | | | | | (35) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (36) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (39) ...to here | | (40) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (34) | set_x509_ocsp_multi_invalid.c:174:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 165 | fp) > 0); | 166 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-49 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' | 170 | | 171 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (45) opened here | 172 | if (fp == NULL) | | ~ | | | | | (46) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (47) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (45) | set_x509_ocsp_multi_invalid.c:175:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 165 | fp) > 0); | 166 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-51 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' | 170 | | 171 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (45) opened here | 172 | if (fp == NULL) | | ~ | | | | | (46) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (47) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (50) ...to here | | (51) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (45) | set_x509_ocsp_multi_invalid.c:187:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 187 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'start': events 1-2 | |tls-ext-not-in-dtls.c:271:13: | 271 | static void start(const char *name, int type) | | ^ | | | | | (1) entry to 'start' |...... | 277 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 263 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 267 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 165 | fp) > 0); | 166 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-57 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 176 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 181 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 | index3 = ret; | | ~ | | | | | (52) ...to here | 183 | | 184 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (53) opened here | 185 | if (fp == NULL) | | ~ | | | | | (54) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (55) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (56) ...to here | | (57) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (53) | set_x509_ocsp_multi_invalid.c:189:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 189 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 165 | fp) > 0); | 166 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 176 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 181 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 | index3 = ret; | | ~ | | | | | (52) ...to here | 183 | | 184 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (53) opened here | 185 | if (fp == NULL) | | ~ | | | | | (54) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (55) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (56) ...to here | | (57) following 'true' branch... | 188 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (58) ...to here | | (59) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (53) | set_x509_ocsp_multi_invalid.c:198:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 198 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 165 | fp) > 0); | 166 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 176 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 181 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 | index3 = ret; | | ~ | | | | | (52) ...to here |...... | 185 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (54) ...to here | | (55) following 'true' branch... | 188 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (56) ...to here | | (57) following 'true' branch... | 190 | fp) > 0); | 191 | fclose(fp); | | ~ | | | | | (58) ...to here |...... | 194 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (59) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 60-62 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (60) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (61) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (62) ...to here | <------+ | 'doit': events 63-68 | |set_x509_ocsp_multi_invalid.c:194:21: | 194 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (63) returning to 'doit' from 'get_tmpname' | 195 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (64) opened here | 196 | if (fp == NULL) | | ~ | | | | | (65) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (66) following 'false' branch... | 197 | fail("error in fopen\n"); | 198 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | | ~ | | | | | (67) ...to here | | (68) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (64) | set_x509_ocsp_multi_invalid.c:221:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 221 | assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 165 | fp) > 0); | 166 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 176 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 181 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 | index3 = ret; | | ~ | | | | | (52) ...to here |...... | 185 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (54) ...to here | | (55) following 'true' branch... | 188 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (56) ...to here | | (57) following 'true' branch... | 190 | fp) > 0); | 191 | fclose(fp); | | ~ | | | | | (58) ...to here |...... | 194 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (59) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 60-62 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (60) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (61) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (62) ...to here | <------+ | 'doit': events 63-72 | |set_x509_ocsp_multi_invalid.c:194:21: | 194 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (63) returning to 'doit' from 'get_tmpname' | 195 | fp = fopen(ocspfile1, "wb"); | 196 | if (fp == NULL) | | ~ | | | | | (64) following 'false' branch... | 197 | fail("error in fopen\n"); | 198 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | | ~ | | | | | (65) ...to here | | (66) following 'true' branch... | 199 | fclose(fp); | | ~ | | | | | (67) ...to here |...... | 203 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (68) following 'false' branch... |...... | 207 | gnutls_certificate_set_flags( | | ~ | | | | | (69) ...to here |...... | 213 | if (ret < 0) | | ~ | | | | | (70) following 'false' branch... |...... | 217 | ocspfile2 = get_tmpname(ocspname2); | | ~ | | | | | (71) ...to here | | (72) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 73-75 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (73) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (74) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (75) ...to here | <------+ | 'doit': events 76-81 | |set_x509_ocsp_multi_invalid.c:217:21: | 217 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (76) returning to 'doit' from 'get_tmpname' | 218 | fp = fopen(ocspfile2, "wb"); | | ~ | | | | | (77) opened here | 219 | if (fp == NULL) | | ~ | | | | | (78) assuming 'fopen (get_tmpname (&ocspname2), "wb")' is non-NULL | | (79) following 'false' branch... | 220 | fail("error in fopen\n"); | 221 | assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0); | | ~ | | | | | (80) ...to here | | (81) 'fopen (get_tmpname (&ocspname2), "wb")' leaks here; was opened at (77) | set_x509_ocsp_multi_invalid.c:234:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 234 | assert(fwrite(ocsp_resp3.data, 1, ocsp_resp3.size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 119 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 120 | | 121 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 128 | fail("error in fopen\n"); | 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 130 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 132 | fp) > 0); | 133 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 138 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 148 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 156 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... | 161 | fail("error in fopen\n"); | 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (35) ...to here | | (36) following 'true' branch... | 163 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 165 | fp) > 0); | 166 | fclose(fp); | | ~ | | | | | (39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... | 173 | fail("error in fopen\n"); | 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | | ~ | | | | | (46) ...to here | | (47) following 'true' branch... | 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | | ~ | | | | | (48) ...to here | | (49) following 'true' branch... | 176 | fclose(fp); | | ~ | | | | | (50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... | 181 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 | index3 = ret; | | ~ | | | | | (52) ...to here |...... | 185 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (54) ...to here | | (55) following 'true' branch... | 188 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (56) ...to here | | (57) following 'true' branch... | 190 | fp) > 0); | 191 | fclose(fp); | | ~ | | | | | (58) ...to here |...... | 194 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (59) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 60-62 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (60) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (61) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (62) ...to here | <------+ | 'doit': events 63-72 | |set_x509_ocsp_multi_invalid.c:194:21: | 194 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (63) returning to 'doit' from 'get_tmpname' | 195 | fp = fopen(ocspfile1, "wb"); | 196 | if (fp == NULL) | | ~ | | | | | (64) following 'false' branch... | 197 | fail("error in fopen\n"); | 198 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | | ~ | | | | | (65) ...to here | | (66) following 'true' branch... | 199 | fclose(fp); | | ~ | | | | | (67) ...to here |...... | 203 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (68) following 'false' branch... |...... | 207 | gnutls_certificate_set_flags( | | ~ | | | | | (69) ...to here |...... | 213 | if (ret < 0) | | ~ | | | | | (70) following 'false' branch... |...... | 217 | ocspfile2 = get_tmpname(ocspname2); | | ~ | | | | | (71) ...to here | | (72) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 73-75 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (73) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (74) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (75) ...to here | <------+ | 'doit': events 76-83 | |set_x509_ocsp_multi_invalid.c:217:21: | 217 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (76) returning to 'doit' from 'get_tmpname' | 218 | fp = fopen(ocspfile2, "wb"); | 219 | if (fp == NULL) | | ~ | | | | | (77) following 'false' branch... | 220 | fail("error in fopen\n"); | 221 | assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0); | | ~ | | | | | (78) ...to here | | (79) following 'true' branch... | 222 | fclose(fp); | | ~ | | | | | (80) ...to here |...... | 226 | if (ret < 0) | | ~ | | | | | (81) following 'false' branch... |...... | 230 | ocspfile3 = get_tmpname(ocspname3); | | ~ | | | | | (82) ...to here | | (83) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 84-86 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (84) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (85) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (86) ...to here | <------+ | 'doit': events 87-92 | |set_x509_ocsp_multi_invalid.c:230:21: | 230 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (87) returning to 'doit' from 'get_tmpname' | 231 | fp = fopen(ocspfile3, "wb"); | | ~ | | | | | (88) opened here | 232 | if (fp == NULL) | | ~ | | | | | (89) assuming 'fopen (get_tmpname (&ocspname3), "wb")' is non-NULL | | (90) following 'false' branch... | 233 | fail("error in fopen\n"); | 234 | assert(fwrite(ocsp_resp3.data, 1, ocsp_resp3.size, fp) > 0); | | ~ | | | | | (91) ...to here | | (92) 'fopen (get_tmpname (&ocspname3), "wb")' leaks here; was opened at (88) | CCLD insecure_key CCLD handshake-large-packet utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |set_key_utf8.c:168:6: | 168 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 173 | auto_parse(); | | ~ | | | | | (2) calling 'auto_parse' from 'doit' | +--> 'auto_parse': events 3-26 | | 66 | static void auto_parse(void) | | ^ | | | | | (3) entry to 'auto_parse' |...... | 86 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 87 | assert(gnutls_privkey_init(&key) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 88 | | 89 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (7) ...to here | | (8) following 'true' branch... | 90 | | 91 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (9) ...to here | 92 | GNUTLS_X509_FMT_PEM); | 93 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 96 | pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]); | | ~ | | | | | (11) ...to here |...... | 100 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... |...... | 105 | ret = gnutls_privkey_import_x509_raw(key, &server_ca3_key, | | ~ | | | | | (13) ...to here | 106 | GNUTLS_X509_FMT_PEM, NULL, 0); | 107 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 111 | ret = gnutls_certificate_set_key(x509_cred, NULL, 0, pcert_list, | | ~ | | | | | (15) ...to here | 112 | pcert_list_size, key); | 113 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 120 | assert(gnutls_privkey_init(&second_key) >= 0); | | ~ | | | | | (17) ...to here | | (18) following 'true' branch... | 121 | | 122 | pcert_list_size = 2; | | ~ | | | | | (19) ...to here |...... | 126 | if (ret < 0) { | | ~ | | | | | (20) following 'false' branch... |...... | 131 | ret = gnutls_privkey_import_x509_raw(second_key, &server_ca3_key, | | ~ | | | | | (21) ...to here | 132 | GNUTLS_X509_FMT_PEM, NULL, 0); | 133 | if (ret < 0) { | | ~ | | | | | (22) following 'false' branch... |...... | 137 | ret = gnutls_certificate_set_key(x509_cred, NULL, 0, second_pcert, 1, | | ~ | | | | | (23) ...to here | 138 | second_key); | 139 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... |...... | 145 | test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (25) ...to here | | (26) calling 'test_cli_serv' from 'auto_parse' | +--> 'test_cli_serv': events 27-28 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (27) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (28) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 29-41 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (29) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (30) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (31) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (32) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (33) ...to here | 79 | if (ret < 0) | | ~ | | | | | (34) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(37) ...to here | | (38) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (39) ...to here | | (40) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (41) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-10 | |set_x509_key_utf8.c:144:6: | 144 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 165 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 166 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 167 | | 168 | gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 172 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... |...... | 175 | idx = import_key(x509_cred, &server_ca3_key, | | ~ | | | | | (9) ...to here | | (10) calling 'import_key' from 'doit' | +--> 'import_key': events 11-17 | | 87 | static int import_key(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (11) entry to 'import_key' |...... | 96 | assert(gnutls_x509_privkey_init(&key) >= 0); | | ~ | | | | | (12) following 'true' branch... | 97 | | 98 | ret = gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert, | | ~ | | | | | (13) ...to here | 99 | GNUTLS_X509_FMT_PEM, 0); | 100 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 105 | ret = gnutls_x509_privkey_import(key, skey, GNUTLS_X509_FMT_PEM); | | ~ | | | | | (15) ...to here | 106 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 110 | ret = gnutls_certificate_set_x509_key(xcred, crt_list, crt_list_size, | | ~ | | | | | (17) ...to here | <------+ | 'doit': events 18-21 | | 175 | idx = import_key(x509_cred, &server_ca3_key, | | ^ | | | | | (18) returning to 'doit' from 'import_key' | 176 | &server_ca3_localhost_cert_chain); | 177 | assert(idx == 0); | | ~ | | | | | (19) following 'true' branch... | 178 | | 179 | idx = import_key(x509_cred, &server_ca3_key, | | ~ | | | | | (20) ...to here | | (21) calling 'import_key' from 'doit' | +--> 'import_key': events 22-28 | | 87 | static int import_key(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (22) entry to 'import_key' |...... | 96 | assert(gnutls_x509_privkey_init(&key) >= 0); | | ~ | | | | | (23) following 'true' branch... | 97 | | 98 | ret = gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert, | | ~ | | | | | (24) ...to here | 99 | GNUTLS_X509_FMT_PEM, 0); | 100 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... |...... | 105 | ret = gnutls_x509_privkey_import(key, skey, GNUTLS_X509_FMT_PEM); | | ~ | | | | | (26) ...to here | 106 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... |...... | 110 | ret = gnutls_certificate_set_x509_key(xcred, crt_list, crt_list_size, | | ~ | | | | | (28) ...to here | <------+ | 'doit': events 29-32 | | 179 | idx = import_key(x509_cred, &server_ca3_key, | | ^ | | | | | (29) returning to 'doit' from 'import_key' | 180 | &server_ca3_localhost_utf8_cert); | 181 | assert(idx == 1); | | ~ | | | | | (30) following 'true' branch... | 182 | | 183 | test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (31) ...to here | | (32) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 33-34 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (33) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (34) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 35-47 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (35) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (36) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (37) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (38) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (39) ...to here | 79 | if (ret < 0) | | ~ | | | | | (40) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (41) ...to here | | (42) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(43) ...to here | | (44) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (45) ...to here | | (46) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (47) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-12 | |insecure_key.c:66:6: | 66 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 83 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 84 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 85 | | 86 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (5) ...to here | 87 | GNUTLS_X509_FMT_PEM); | 88 | if (ret < 0) | | ~ | | | | | (6) following 'false' branch... |...... | 91 | ret = gnutls_certificate_set_x509_key_mem2( | | ~ | | | | | (7) ...to here |...... | 95 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... |...... | 98 | ret = gnutls_certificate_set_x509_key_mem2( | | ~ | | | | | (9) ...to here |...... | 101 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 104 | test_cli_serv(x509_cred, clicred, "NORMAL", "localhost6", NULL, NULL, | | ~ | | | | | (11) ...to here | | (12) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 13-14 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (13) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (14) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 15-27 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (15) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (17) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (18) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (19) ...to here | 79 | if (ret < 0) | | ~ | | | | | (20) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (21) ...to here | | (22) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(23) ...to here | | (24) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (25) ...to here | | (26) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (27) out-of-bounds read from byte 11 till byte 14 but '"localhost6"' ends at byte 11 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost6"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost6"' are '[0]' to '[10]' +-------------------------------------------------+ | read of 11 bytes | +-------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | | | +----+-----------------------------------------+----++-----------------+ |[0] | ... |[10]|| | +----+----+----+----++----+----+---+---+---+---+----+| | |'l' |'o' |'c' |'a' ||'l' |'h' |'o'|'s'|'t'|'6'|NUL ||after valid range| +----+----+----+----++----+----+---+---+---+---+----+| | | string literal (type: 'const char[11]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 11 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD client_dsa_key CCLD server_ecdsa_key CCLD tls-session-ext-register CCLD tls-session-supplemental utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-12 | |client_dsa_key.c:64:6: | 64 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 78 | assert(gnutls_certificate_allocate_credentials(&cli_cred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 79 | | 80 | ret = gnutls_certificate_set_x509_trust_mem(cli_cred, &ca3_cert, | | ~ | | | | | (3) ...to here | 81 | GNUTLS_X509_FMT_PEM); | 82 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... |...... | 85 | ret = gnutls_certificate_set_x509_key_mem(cli_cred, &clidsa_ca3_cert, | | ~ | | | | | (5) ...to here |...... | 88 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... |...... | 94 | gnutls_certificate_allocate_credentials(&serv_cred); | | ~ | | | | | (7) ...to here |...... | 102 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... |...... | 105 | ret = gnutls_certificate_set_x509_key_mem( | | ~ | | | | | (9) ...to here |...... | 108 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... |...... | 113 | test_cli_serv_cert( | | ~ | | | | | (11) ...to here | | (12) calling 'test_cli_serv_cert' from 'doit' | +--> 'test_cli_serv_cert': events 13-14 | |utils-adv.c:296:6: | 296 | void test_cli_serv_cert(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (13) entry to 'test_cli_serv_cert' |...... | 301 | _test_cli_serv(server_cred, client_cred, serv_prio, cli_prio, host, | | ~ | | | | | (14) calling '_test_cli_serv' from 'test_cli_serv_cert' | +--> '_test_cli_serv': events 15-27 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (15) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (17) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (18) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (19) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (20) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (21) ...to here | | (22) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(23) ...to here | | (24) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (25) ...to here | | (26) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (27) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD multi-alerts CCLD naked-alerts CCLD pkcs7-cat-parse CCLD set_known_dh_params_x509 CCLD set_known_dh_params_anon CCLD set_known_dh_params_psk CCLD session-tickets-ok CCLD session-tickets-missing utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_known_dh_params_x509.c:55:6: | 55 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 69 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 70 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 71 | | 72 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (7) ...to here | 73 | GNUTLS_X509_FMT_PEM); | 74 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... |...... | 77 | ret = gnutls_certificate_set_x509_key_mem( | | ~ | | | | | (9) ...to here |...... | 80 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... |...... | 85 | assert(gnutls_certificate_set_known_dh_params( | | ~ | | | | | (11) ...to here | | (12) following 'true' branch... | 86 | x509_cred, GNUTLS_SEC_PARAM_LEGACY) >= 0); | 87 | test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA", | | ~ | | | | | (13) ...to here | | (14) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 15-16 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (15) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (16) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 17-29 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (17) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (19) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (20) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (21) ...to here | 79 | if (ret < 0) | | ~ | | | | | (22) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(25) ...to here | | (26) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (27) ...to here | | (28) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (29) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD set_x509_key_file_legacy CCLD status-request-ext CCLD gnutls_x509_crt_sign CCLD gnutls_x509_crq_sign CCLD dtls-repro-20170915 CCLD rng-no-onload CCLD dtls1-2-mtu-check CCLD crl_apis CCLD cert_verify_inv_utf8 CCLD no-extensions utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |cert_verify_inv_utf8.c:162:6: | 162 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 167 | auto_parse(); | | ~ | | | | | (2) calling 'auto_parse' from 'doit' | +--> 'auto_parse': events 3-26 | | 66 | static void auto_parse(void) | | ^ | | | | | (3) entry to 'auto_parse' |...... | 86 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 87 | assert(gnutls_privkey_init(&key) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 88 | | 89 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (7) ...to here | | (8) following 'true' branch... | 90 | | 91 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (9) ...to here | 92 | GNUTLS_X509_FMT_PEM); | 93 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 96 | pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]); | | ~ | | | | | (11) ...to here |...... | 100 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... |...... | 105 | ret = gnutls_privkey_import_x509_raw(key, &server_ca3_key, | | ~ | | | | | (13) ...to here | 106 | GNUTLS_X509_FMT_PEM, NULL, 0); | 107 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... |...... | 111 | ret = gnutls_certificate_set_key(x509_cred, NULL, 0, pcert_list, | | ~ | | | | | (15) ...to here | 112 | pcert_list_size, key); | 113 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... |...... | 120 | assert(gnutls_privkey_init(&second_key) >= 0); | | ~ | | | | | (17) ...to here | | (18) following 'true' branch... | 121 | | 122 | pcert_list_size = 2; | | ~ | | | | | (19) ...to here |...... | 126 | if (ret < 0) { | | ~ | | | | | (20) following 'false' branch... |...... | 131 | ret = gnutls_privkey_import_x509_raw(second_key, &server_ca3_key, | | ~ | | | | | (21) ...to here | 132 | GNUTLS_X509_FMT_PEM, NULL, 0); | 133 | if (ret < 0) { | | ~ | | | | | (22) following 'false' branch... |...... | 137 | ret = gnutls_certificate_set_key(x509_cred, NULL, 0, second_pcert, 1, | | ~ | | | | | (23) ...to here | 138 | second_key); | 139 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... |...... | 145 | test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL", | | ~ | | | | | (25) ...to here | | (26) calling 'test_cli_serv_expect' from 'auto_parse' | +--> 'test_cli_serv_expect': events 27-28 | |utils-adv.c:305:6: | 305 | void test_cli_serv_expect(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (27) entry to 'test_cli_serv_expect' |...... | 310 | _test_cli_serv(server_cred, client_cred, serv_prio, cli_prio, host, | | ~ | | | | | (28) calling '_test_cli_serv' from 'test_cli_serv_expect' | +--> '_test_cli_serv': events 29-41 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (29) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (30) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (31) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (32) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (33) ...to here | 79 | if (ret < 0) | | ~ | | | | | (34) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(37) ...to here | | (38) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (39) ...to here | | (40) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (41) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD no-status-request CCLD hostname-check-utf8 CCLD pkcs8-key-decode-encrypted CCLD priority-mix CCLD pkcs7 CCLD send-data-before-handshake CCLD recv-data-before-handshake CCLD crt_inv_write CCLD x509sign-verify-error CCLD rng-op-nonce CCLD rng-op-random CCLD rng-op-key CCLD x509-dn-decode-compat CCLD ip-check CCLD mini-x509-ipaddr CCLD trust-store CCLD base64-raw CCLD random-art CCLD dhex509self CCLD dss-sig-val CCLD sign-pk-api CCLD tls-session-ext-override CCLD record-pad utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |record-pad.c:374:6: | 374 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 377 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 317 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 321 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13-server-kx-neg CCLD gnutls_ext_raw_parse_dtls CCLD key-export-pkcs8 utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file_legacy.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | gnutls_global_set_time_function(mytime); | | ~ | | | | | (5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... |...... | 141 | gnutls_certificate_free_credentials(xcred); | | ~ | | | | | (7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... | 144 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (9) ...to here | | (10) following 'true' branch... | 145 | | 146 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, | | ~ | | | | | (11) ...to here | 147 | GNUTLS_X509_FMT_PEM); | 148 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... |...... | 151 | success("Testing store of certificates\n"); | | ~ | | | | | (13) ...to here | 152 | | 153 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-23 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 78 | if (fp == NULL) | | ~ | | | | | (16) following 'false' branch... | 79 | fail("error in fopen\n"); | 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (17) ...to here | | (18) following 'true' branch... | 81 | assert(fwrite(key->data, 1, key->size, fp) > 0); | | ~ | | | | | (19) ...to here | | (20) following 'true' branch... | 82 | fclose(fp); | | ~ | | | | | (21) ...to here |...... | 86 | if (ret < 0) | | ~ | | | | | (22) following 'false' branch... |...... | 90 | return ret; | | ~ | | | | | (23) ...to here | <------+ | 'doit': events 24-25 | | 153 | idx = set_cert(xcred, &server_ca3_key, | | ^ | | | | | (24) returning to 'doit' from 'set_cert' | 154 | &server_ca3_localhost6_cert_chain); | 155 | verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2); | | ~ | | | | | (25) calling 'verify_written_cert' from 'doit' | +--> 'verify_written_cert': events 26-29 | | 93 | static void verify_written_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (26) entry to 'verify_written_cert' |...... | 102 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... |...... | 107 | compare(&tcert, cert->data); | | ~ ~ | | | | | | | (28) ...to here | | (29) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 30-36 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (30) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (31) following 'false' branch... |...... | 59 | if (der->size != new_der.size || | | ~ ~ ~ | | | | | | | | (32) ...to here (35) following 'false' branch... | | (33) following 'false' branch... | 60 | memcmp(der->data, new_der.data, der->size) != 0) { | | ~ | | | | | (34) ...to here |...... | 64 | gnutls_free(new_der.data); | | ~ | | | | | (36) ...to here | <------+ | 'verify_written_cert': events 37-42 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (37) returning to 'verify_written_cert' from 'compare' | 108 | | 109 | if (ncerts > 1) { | | ~ | | | | | (38) following 'true' branch (when 'ncerts_14(D) > 1')... | 110 | ret = gnutls_certificate_get_crt_raw(xcred, idx, 1, &tcert); | | ~ | | | | | (39) ...to here | 111 | if (ret < 0) { | | ~ | | | | | (40) following 'false' branch... |...... | 118 | compare(&tcert, cert->data + 2); | | ~ ~ | | | | | | | (41) ...to here | | (42) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 43-49 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (43) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (44) following 'false' branch... |...... | 59 | if (der->size != new_der.size || | | ~ ~ ~ | | | | | | | | (45) ...to here (48) following 'false' branch... | | (46) following 'false' branch... | 60 | memcmp(der->data, new_der.data, der->size) != 0) { | | ~ | | | | | (47) ...to here |...... | 64 | gnutls_free(new_der.data); | | ~ | | | | | (49) ...to here | <------+ | 'verify_written_cert': event 50 | | 118 | compare(&tcert, cert->data + 2); | | ^ | | | | | (50) returning to 'verify_written_cert' from 'compare' | <------+ | 'doit': events 51-54 | | 155 | verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2); | | ^ | | | | | (51) returning to 'doit' from 'verify_written_cert' | 156 | assert(idx == 0); | | ~ | | | | | (52) following 'true' branch... | 157 | | 158 | success("Tested store of %d\n", idx); | | ~ | | | | | (53) ...to here | 159 | | 160 | idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert); | | ~ | | | | | (54) calling 'set_cert' from 'doit' | +--> 'set_cert': events 55-63 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (55) entry to 'set_cert' |...... | 78 | if (fp == NULL) | | ~ | | | | | (56) following 'false' branch... | 79 | fail("error in fopen\n"); | 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (57) ...to here | | (58) following 'true' branch... | 81 | assert(fwrite(key->data, 1, key->size, fp) > 0); | | ~ | | | | | (59) ...to here | | (60) following 'true' branch... | 82 | fclose(fp); | | ~ | | | | | (61) ...to here |...... | 86 | if (ret < 0) | | ~ | | | | | (62) following 'false' branch... |...... | 90 | return ret; | | ~ | | | | | (63) ...to here | <------+ | 'doit': events 64-67 | | 160 | idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert); | | ^ | | | | | (64) returning to 'doit' from 'set_cert' | 161 | assert(idx == 0); | | ~ | | | | | (65) following 'true' branch... | 162 | | 163 | success("Tested store of %d\n", idx); | | ~ | | | | | (66) ...to here | 164 | | 165 | test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (67) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 68-69 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (68) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (69) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 70-82 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (70) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (71) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (72) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (73) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (74) ...to here | 79 | if (ret < 0) | | ~ | | | | | (75) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (76) ...to here | | (77) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(78) ...to here | | (79) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (80) ...to here | | (81) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (82) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file_legacy.c: In function 'set_cert': set_x509_key_file_legacy.c:80:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file_legacy.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | gnutls_global_set_time_function(mytime); | | ~ | | | | | (5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... |...... | 141 | gnutls_certificate_free_credentials(xcred); | | ~ | | | | | (7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... | 144 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (9) ...to here | | (10) following 'true' branch... | 145 | | 146 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, | | ~ | | | | | (11) ...to here | 147 | GNUTLS_X509_FMT_PEM); | 148 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... |...... | 151 | success("Testing store of certificates\n"); | | ~ | | | | | (13) ...to here | 152 | | 153 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-16 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 75 | certfile = get_tmpname(NULL); | | ~ | | | | | (16) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 17-19 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (17) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (18) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (19) ...to here | <------+ | 'set_cert': events 20-25 | |set_x509_key_file_legacy.c:75:20: | 75 | certfile = get_tmpname(NULL); | | ^ | | | | | (20) returning to 'set_cert' from 'get_tmpname' | 76 | | 77 | fp = fopen(certfile, "w"); | | ~ | | | | | (21) opened here | 78 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (23) following 'false' branch... | 79 | fail("error in fopen\n"); | 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (24) ...to here | | (25) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (21) | set_x509_key_file_legacy.c:80:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file_legacy.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | gnutls_global_set_time_function(mytime); | | ~ | | | | | (5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... |...... | 141 | gnutls_certificate_free_credentials(xcred); | | ~ | | | | | (7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... | 144 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (9) ...to here | | (10) following 'true' branch... | 145 | | 146 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, | | ~ | | | | | (11) ...to here | 147 | GNUTLS_X509_FMT_PEM); | 148 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... |...... | 151 | success("Testing store of certificates\n"); | | ~ | | | | | (13) ...to here | 152 | | 153 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-16 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 75 | certfile = get_tmpname(NULL); | | ~ | | | | | (16) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 17-19 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (17) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (18) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (19) ...to here | <------+ | 'set_cert': events 20-27 | |set_x509_key_file_legacy.c:75:20: | 75 | certfile = get_tmpname(NULL); | | ^ | | | | | (20) returning to 'set_cert' from 'get_tmpname' | 76 | | 77 | fp = fopen(certfile, "w"); | | ~ | | | | | (21) opened here | 78 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (23) following 'false' branch... | 79 | fail("error in fopen\n"); | 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | | ~ | | | | | (24) ...to here | | (25) following 'true' branch... | | (27) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (21) | 81 | assert(fwrite(key->data, 1, key->size, fp) > 0); | | ~ | | | | | (26) ...to here | CCLD null_retrieve_function CCLD tls-record-size-limit CCLD tls-crt_type-neg CCLD resume-with-stek-expiration utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |null_retrieve_function.c:67:6: | 67 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 86 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... |...... | 91 | gnutls_certificate_allocate_credentials(&clicred); | | ~ | | | | | (3) ...to here |...... | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-17 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (11) ...to here | | (12) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(13) ...to here | | (14) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (15) ...to here | | (16) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (17) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |null_retrieve_function.c:67:6: | 67 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 86 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... |...... | 91 | gnutls_certificate_allocate_credentials(&clicred); | | ~ | | | | | (3) ...to here |...... | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-20 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (11) ...to here | | (12) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~ | | | | | (13) ...to here | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (14) following 'true' branch... |...... | 94 | ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (15) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (16) following 'false' branch... |...... | 99 | ret = gnutls_priority_set_direct(client, cli_prio, NULL); | | ~ | | | | | (17) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... |...... | 103 | gnutls_transport_set_push_function(client, client_push); | | ~ | | | | | (19) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (20) following 'false' branch... | '_test_cli_serv': event 21 | |lto1: | (21): ...to here | '_test_cli_serv': events 22-33 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (22) following 'true' branch... | | (23) ...to here | | (24) following 'false' branch (when 'cli_err_101(D) == -1')... | | (25) ...to here | | (26) following 'true' branch (when 'serv_err_102(D) != -1')... | | (27) ...to here | | (28) following 'false' branch (when 'sret_41 == serv_err_102(D)')... | 111 | goto cleanup; | | ~ | | | | | (29) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (30) following 'false' branch (when 'client_cb_151(D)' is NULL)... | 178 | client_cb(client, priv); | 179 | if (server_cb) | | ~ | | | | | (31) ...to here | | (32) following 'false' branch (when 'server_cb_154(D)' is NULL)... |...... | 182 | gnutls_deinit(client); | | ~ | | | | | (33) ...to here | <------+ | 'doit': events 34-35 | |null_retrieve_function.c:94:9: | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (34) returning to 'doit' from '_test_cli_serv' |...... | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (35) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 36-48 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (36) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (37) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (38) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (39) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (40) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (41) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (42) ...to here | | (43) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(44) ...to here | | (45) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (46) ...to here | | (47) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (48) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |null_retrieve_function.c:67:6: | 67 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 86 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... |...... | 91 | gnutls_certificate_allocate_credentials(&clicred); | | ~ | | | | | (3) ...to here |...... | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-20 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (11) ...to here | | (12) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~ | | | | | (13) ...to here |...... | 89 | assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, | | ~ | | | | | (14) following 'true' branch... |...... | 94 | ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (15) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (16) following 'false' branch... |...... | 99 | ret = gnutls_priority_set_direct(client, cli_prio, NULL); | | ~ | | | | | (17) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... |...... | 103 | gnutls_transport_set_push_function(client, client_push); | | ~ | | | | | (19) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (20) following 'false' branch... | '_test_cli_serv': event 21 | |lto1: | (21): ...to here | '_test_cli_serv': events 22-33 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (22) following 'true' branch... | | (23) ...to here | | (24) following 'false' branch (when 'cli_err_101(D) == -1')... | | (25) ...to here | | (26) following 'true' branch (when 'serv_err_102(D) != -1')... | | (27) ...to here | | (28) following 'false' branch (when 'sret_41 == serv_err_102(D)')... | 111 | goto cleanup; | | ~ | | | | | (29) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (30) following 'false' branch (when 'client_cb_151(D)' is NULL)... | 178 | client_cb(client, priv); | 179 | if (server_cb) | | ~ | | | | | (31) ...to here | | (32) following 'false' branch (when 'server_cb_154(D)' is NULL)... |...... | 182 | gnutls_deinit(client); | | ~ | | | | | (33) ...to here | <------+ | 'doit': events 34-35 | |null_retrieve_function.c:94:9: | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (34) returning to 'doit' from '_test_cli_serv' |...... | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (35) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 36-51 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (36) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (37) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (38) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (39) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (40) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (41) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (42) ...to here | | (43) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~ | | | | | (44) ...to here |...... | 89 | assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, | | ~ | | | | | (45) following 'true' branch... |...... | 94 | ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (46) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (47) following 'false' branch... |...... | 99 | ret = gnutls_priority_set_direct(client, cli_prio, NULL); | | ~ | | | | | (48) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (49) following 'false' branch... |...... | 103 | gnutls_transport_set_push_function(client, client_push); | | ~ | | | | | (50) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (51) following 'false' branch... | '_test_cli_serv': event 52 | |lto1: | (52): ...to here | '_test_cli_serv': events 53-64 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (53) following 'true' branch... | | (54) ...to here | | (55) following 'false' branch (when 'cli_err_101(D) == -1')... | | (56) ...to here | | (57) following 'true' branch (when 'serv_err_102(D) != -1')... | | (58) ...to here | | (59) following 'false' branch (when 'sret_41 == serv_err_102(D)')... | 111 | goto cleanup; | | ~ | | | | | (60) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (61) following 'false' branch (when 'client_cb_151(D)' is NULL)... | 178 | client_cb(client, priv); | 179 | if (server_cb) | | ~ | | | | | (62) ...to here | | (63) following 'false' branch (when 'server_cb_154(D)' is NULL)... |...... | 182 | gnutls_deinit(client); | | ~ | | | | | (64) ...to here | <------+ | 'doit': events 65-66 | |null_retrieve_function.c:102:9: | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (65) returning to 'doit' from '_test_cli_serv' |...... | 110 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (66) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 67-79 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (67) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (68) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (69) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (70) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (71) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (72) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (73) ...to here | | (74) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(75) ...to here | | (76) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (77) ...to here | | (78) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (79) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD resume-with-previous-stek CCLD rawpk-api CCLD tls-record-size-limit-asym CCLD dh-compute CCLD ecdh-compute CCLD sign-verify-data-newapi CCLD sign-verify-newapi CCLD sign-verify-deterministic CCLD iov CCLD aead-cipher-vec CCLD tls13-without-timeout-func CCLD buffer CCLD status-request-revoked CCLD set_x509_ocsp_multi_cli CCLD kdf-api CCLD keylog-func CCLD handshake-write CCLD x509cert-dntypes CCLD id-on-xmppAddr CCLD tls13-compat-mode CCLD ciphersuite-name CCLD x509-upnconstraint CCLD xts-key-check CCLD cipher-padding CCLD pkcs7-verify-double-free utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-6 | |set_x509_ocsp_multi_cli.c:117:6: | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 137 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 138 | | 139 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (12) ...to here | | (13) following 'true' branch... | 148 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... |...... | 158 | ret = gnutls_certificate_set_x509_key_file2( | | ~ | | | | | (18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 161 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-52 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | 167 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 168 | fail("error in fopen\n"); | 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 170 | ocsp_subca3_unknown_pem.size, fp) > 0); | 171 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 172 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 173 | assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | | (32) following 'true' branch... | 174 | ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 175 | fclose(fp); | | ~ | | | | | (33) ...to here |...... | 179 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... |...... | 183 | remove(ocspfile1); | | ~ | | | | | (35) ...to here | 184 | fp = fopen(ocspfile1, "wb"); | 185 | if (fp == NULL) | | ~ | | | | | (36) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (37) ...to here | | (38) following 'true' branch... | 188 | ocsp_subca3_unknown_pem.size, fp) > 0); | 189 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (39) ...to here | | (40) following 'true' branch... | 190 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 191 | fclose(fp); | | ~ | | | | | (41) ...to here |...... | 195 | if (ret < 0) | | ~ | | | | | (42) following 'false' branch... |...... | 198 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (43) ...to here | 199 | GNUTLS_X509_FMT_PEM); | 200 | if (ret < 0) { | | ~ | | | | | (44) following 'false' branch... |...... | 204 | t = gnutls_certificate_get_ocsp_expiration(clicred, 0, 0, 0); | | ~ | | | | | (45) ...to here | 205 | if (t != 1509625639) | | ~ | | | | | (46) following 'false' branch... |...... | 208 | t = gnutls_certificate_get_ocsp_expiration(clicred, 0, 1, 0); | | ~ | | | | | (47) ...to here | 209 | if (t != 1509625639) | | ~ | | | | | (48) following 'false' branch... |...... | 212 | t = gnutls_certificate_get_ocsp_expiration(clicred, 0, -1, 0); | | ~ | | | | | (49) ...to here | 213 | if (t != 1509625639) | | ~ | | | | | (50) following 'false' branch... |...... | 217 | _test_cli_serv(xcred, clicred, PRIO, PRIO, "localhost", | | ~ | | | | | (51) ...to here | | (52) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 53-65 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (53) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (54) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (55) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (56) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (57) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (58) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (59) ...to here | | (60) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(61) ...to here | | (62) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (63) ...to here | | (64) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (65) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_ocsp_multi_cli.c: In function 'doit': set_x509_ocsp_multi_cli.c:147:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 137 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 138 | | 139 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (9) ...to here | <------+ | 'doit': events 10-15 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 144 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (11) opened here | 145 | if (fp == NULL) | | ~ | | | | | (12) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (13) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (11) | set_x509_ocsp_multi_cli.c:149:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 137 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 138 | | 139 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (9) ...to here | <------+ | 'doit': events 10-17 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 144 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (11) opened here | 145 | if (fp == NULL) | | ~ | | | | | (12) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (13) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 148 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (11) | set_x509_ocsp_multi_cli.c:169:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 137 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 138 | | 139 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (12) ...to here | | (13) following 'true' branch... | 148 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... |...... | 158 | ret = gnutls_certificate_set_x509_key_file2( | | ~ | | | | | (18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 161 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 167 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... | 168 | fail("error in fopen\n"); | 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_cli.c:169:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 137 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 138 | | 139 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (12) ...to here | | (13) following 'true' branch... | 148 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... |...... | 158 | ret = gnutls_certificate_set_x509_key_file2( | | ~ | | | | | (18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 161 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 167 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... | 168 | fail("error in fopen\n"); | 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | | (32) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | 170 | ocsp_subca3_unknown_pem.size, fp) > 0); | 171 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | set_x509_ocsp_multi_cli.c:169:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 137 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 138 | | 139 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (12) ...to here | | (13) following 'true' branch... | 148 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... |...... | 158 | ret = gnutls_certificate_set_x509_key_file2( | | ~ | | | | | (18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 161 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 167 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... | 168 | fail("error in fopen\n"); | 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | | (34) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | 170 | ocsp_subca3_unknown_pem.size, fp) > 0); | 171 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | | (32) following 'true' branch... | 172 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 173 | assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | | ~ | | | | | (33) ...to here | set_x509_ocsp_multi_cli.c:187:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 187 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 137 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 138 | | 139 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (12) ...to here | | (13) following 'true' branch... | 148 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... |...... | 158 | ret = gnutls_certificate_set_x509_key_file2( | | ~ | | | | | (18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 161 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | 167 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 168 | fail("error in fopen\n"); | 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 170 | ocsp_subca3_unknown_pem.size, fp) > 0); | 171 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 172 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 173 | assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | | (32) following 'true' branch... | 174 | ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 175 | fclose(fp); | | ~ | | | | | (33) ...to here |...... | 179 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... |...... | 183 | remove(ocspfile1); | | ~ | | | | | (35) ...to here | 184 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (36) opened here | 185 | if (fp == NULL) | | ~ | | | | | (37) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (38) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (39) ...to here | | (40) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (36) | set_x509_ocsp_multi_cli.c:187:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 187 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... | 137 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (3) ...to here | | (4) following 'true' branch... | 138 | | 139 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... | 146 | fail("error in fopen\n"); | 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (12) ...to here | | (13) following 'true' branch... | 148 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 150 | fp) > 0); | 151 | fclose(fp); | | ~ | | | | | (16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... |...... | 158 | ret = gnutls_certificate_set_x509_key_file2( | | ~ | | | | | (18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 161 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-42 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | 167 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 168 | fail("error in fopen\n"); | 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 170 | ocsp_subca3_unknown_pem.size, fp) > 0); | 171 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 172 | ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 173 | assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | | ~ | | | | | (31) ...to here | | (32) following 'true' branch... | 174 | ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 175 | fclose(fp); | | ~ | | | | | (33) ...to here |...... | 179 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... |...... | 183 | remove(ocspfile1); | | ~ | | | | | (35) ...to here | 184 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (36) opened here | 185 | if (fp == NULL) | | ~ | | | | | (37) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (38) following 'false' branch... | 186 | fail("error in fopen\n"); | 187 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | | ~ | | | | | (39) ...to here | | (40) following 'true' branch... | | (42) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (36) | 188 | ocsp_subca3_unknown_pem.size, fp) > 0); | 189 | assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | | ~ | | | | | (41) ...to here | CCLD fips-rsa-sizes CCLD tls12-rehandshake-ticket CCLD pathbuf CCLD tls-force-ems CCLD psk-importer CCLD privkey-derive CCLD dh-compute2 CCLD ecdh-compute2 CCLD tls-channel-binding CCLD strict-der CCLD system-prio-file CCLD tls-pthread CCLD fips-mode-pthread CCLD dtls-pthread CCLD rng-pthread CCLD pkcs11-cert-import-url-exts CCLD pkcs11-get-exts CCLD pkcs11-get-raw-issuer-exts CCLD pkcs11-cert-import-url4-exts CCLD pkcs11/pkcs11-chainverify CCLD pkcs11/pkcs11-get-issuer CCLD pkcs11/pkcs11-is-known pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11/pkcs11-combo pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11/pkcs11-privkey pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11/pkcs11-pubkey-import-rsa CCLD pkcs11/pkcs11-pubkey-import-ecdsa pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11-import-url-privkey pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11-privkey-fork CCLD pkcs11/pkcs11-ec-privkey-test CCLD pkcs11-privkey-always-auth CCLD pkcs11-privkey-export CCLD pkcs11/pkcs11-import-with-pin pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11/pkcs11-privkey-pthread CCLD pkcs11/pkcs11-pin-func CCLD pkcs11/pkcs11-obj-import pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11-privkey-fork-reinit CCLD pkcs11-mechanisms pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11-privkey-safenet-always-auth CCLD pkcs11/pkcs11-rsa-pss-privkey-test CCLD pkcs11/tls-neg-pkcs11-key CCLD pkcs11/pkcs11-privkey-generate CCLD pkcs11/gnutls_x509_crt_list_import_url pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11/gnutls_pcert_list_import_x509_file CCLD pkcs11/pkcs11-eddsa-privkey-test pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD pkcs11-token-raw pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'doit': events 1-4 | |pkcs11/tls-neg-pkcs11-key.c:423:6: | 423 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 431 | if (gnutls_fips140_mode_enabled()) | | ~ | | | | | (2) following 'false' branch... |...... | 437 | bin = softhsm_bin(); | | ~ | | | | | (3) ...to here |...... | 449 | set_softhsm_conf(CONFIG); | | ~ | | | | | (4) calling 'set_softhsm_conf' from 'doit' | +--> 'set_softhsm_conf': events 5-10 | |pkcs11/softhsm.h:85:13: | 85 | static void set_softhsm_conf(const char *config) | | ^ | | | | | (5) entry to 'set_softhsm_conf' |...... | 95 | fp = fopen(config, "w"); | | ~ | | | | | (6) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (7) assuming 'fopen (config_5(D), "w")' is non-NULL | | (8) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (9) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (10) 'fopen (config_5(D), "w")' leaks here; was opened at (6) | CCLD pkcs11-obj-raw CCLD pkcs11-import-url-privkey-caps CCLD ocsp CCLD openssl CCLD x509self CCLD x509dn CCLD anonself CCLD pskself CCLD pskself2 CCLD dhepskself CCLD setcredcrash CCLD tls12-resume-x509 CCLD tls12-resume-psk CCLD tls12-resume-anon CCLD tls13-resume-x509 CCLD tls13-resume-psk CCLD tls13-early-data CCLD tls13-early-data-neg CCLD tls13-early-data-neg2 CCLD resume-with-record-size-limit CCLD record-sendfile CCLD tls13/post-handshake-with-cert-pkcs11 CCLD pkcs11/tls-neg-pkcs11-no-key ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD global-init-override CCLD pkcs11/distrust-after CCLD system-override-hash ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'doit': events 1-4 | |tls13/post-handshake-with-cert-pkcs11.c:441:6: | 441 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 446 | if (gnutls_fips140_mode_enabled()) | | ~ | | | | | (2) following 'false' branch... |...... | 450 | (void)softhsm_lib(); | | ~ | | | | | (3) ...to here |...... | 455 | set_softhsm_conf(CONFIG); | | ~ | | | | | (4) calling 'set_softhsm_conf' from 'doit' | +--> 'set_softhsm_conf': events 5-10 | |./pkcs11/softhsm.h:85:13: | 85 | static void set_softhsm_conf(const char *config) | | ^ | | | | | (5) entry to 'set_softhsm_conf' |...... | 95 | fp = fopen(config, "w"); | | ~ | | | | | (6) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (7) assuming 'fopen (config_5(D), "w")' is non-NULL | | (8) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (9) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (10) 'fopen (config_5(D), "w")' leaks here; was opened at (6) | CCLD system-override-sig CCLD system-override-sig-tls CCLD gnutls_ktls CC dtls/dtls-stress.o ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 | | 95 | fp = fopen(config, "w"); | | ^ | | | | | (1) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | | (3) following 'false' branch... |...... | 105 | fputs("directories.tokendir = ", fp); | | ~ | | | | | (4) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) | CCLD system-override-curves-allowlist CCLD protocol-set-allowlist CCLD rsaes-pkcs1-v1_5 CCLD pkcs11/list-tokens CCLD pkcs11/list-objects CCLD tls13/supported_versions CCLD tls13/tls12-no-tls13-exts CCLD tls13/post-handshake-with-cert utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/supported_versions.c:340:6: | 340 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 346 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 332 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 336 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13/post-handshake-without-cert utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/tls12-no-tls13-exts.c:205:6: | 205 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 211 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 197 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 201 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13/cookie CCLD tls13/key_share utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/post-handshake-without-cert.c:234:6: | 234 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 240 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 226 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 230 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13/prf CCLD tls13/prf-early CCLD tls13/post-handshake-with-cert-ticket CCLD tls12-rollback-detection CCLD tls11-rollback-detection CCLD tls12-check-rollback-val CCLD tls11-check-rollback-val CCLD tls13/post-handshake-with-psk CCLD tls13/post-handshake-with-cert-auto CCLD tls13/anti_replay CCLD tls13/compress-cert CCLD tls13/compress-cert-neg CCLD tls13/compress-cert-neg2 CCLD tls13/compress-cert-cli CCLD tls13/hello_retry_request CCLD tls13/hello_retry_request_resume CCLD tls13/psk-ext CCLD tls13/key_update CCLD tls13/key_update_multiple utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/hello_retry_request_resume.c:291:6: | 291 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 297 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 283 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 287 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13/key_limits CCLD tls13/multi-ocsp CCLD tls13/ocsp-client CCLD tls13/change_cipher_spec utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 140 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 141 | | 142 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 148 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 151 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 152 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 153 | fp) > 0); | 154 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 158 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 159 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 160 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 163 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-44 | |tls13/multi-ocsp.c:163:21: | 163 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 166 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 167 | fail("error in fopen\n"); | 168 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 169 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 170 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 171 | fp) > 0); | 172 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 176 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 177 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 178 | index2 = ret; | | ~ | | | | | (33) ...to here |...... | 183 | if (ret < 0) | | ~ | | | | | (34) following 'false' branch... |...... | 187 | ret = gnutls_certificate_set_ocsp_status_request_mem( | | ~ | | | | | (35) ...to here | 188 | xcred, &test_localhost6.ocsp[0], index2, GNUTLS_X509_FMT_DER); | 189 | if (ret < 0) | | ~ | | | | | (36) following 'false' branch... |...... | 192 | ret = gnutls_certificate_set_ocsp_status_request_mem( | | ~ | | | | | (37) ...to here | 193 | xcred, &test_localhost6.ocsp[1], index2, GNUTLS_X509_FMT_DER); | 194 | if (ret < 0) | | ~ | | | | | (38) following 'false' branch... |...... | 199 | gnutls_certificate_set_verify_flags(clicred, | | ~ | | | | | (39) ...to here | 200 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 201 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (40) following 'false' branch... |...... | 205 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (41) ...to here | 206 | GNUTLS_X509_FMT_PEM); | 207 | if (ret < 0) { | | ~ | | | | | (42) following 'false' branch... |...... | 211 | test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", | | ~ | | | | | (43) ...to here | | (44) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 45-46 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (45) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (46) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 47-59 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (47) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (48) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (49) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (50) following 'false' branch (when 'require_cert_80(D) == 0')... |...... | 78 | ret = gnutls_init(&client, GNUTLS_CLIENT); | | ~ | | | | | (51) ...to here | 79 | if (ret < 0) | | ~ | | | | | (52) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (53) ...to here | | (54) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(55) ...to here | | (56) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (57) ...to here | | (58) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (59) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ tls13/multi-ocsp.c: In function 'doit': tls13/multi-ocsp.c:150:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 150 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 140 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 141 | | 142 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-17 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 146 | | 147 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 148 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | tls13/multi-ocsp.c:152:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 152 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 140 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 141 | | 142 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-19 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 146 | | 147 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 148 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 151 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 152 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | tls13/multi-ocsp.c:168:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 168 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 140 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 141 | | 142 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 148 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 151 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 152 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 153 | fp) > 0); | 154 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 158 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 159 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 160 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 163 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-30 | |tls13/multi-ocsp.c:163:21: | 163 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 164 | | 165 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 166 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 167 | fail("error in fopen\n"); | 168 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | tls13/multi-ocsp.c:170:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 170 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 140 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 141 | | 142 | gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 148 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 149 | fail("error in fopen\n"); | 150 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 151 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 152 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 153 | fp) > 0); | 154 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 158 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... | 159 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 160 | index1 = ret; | | ~ | | | | | (20) ...to here |...... | 163 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-32 | |tls13/multi-ocsp.c:163:21: | 163 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 164 | | 165 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 166 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 167 | fail("error in fopen\n"); | 168 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 169 | strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 170 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | CCLD tls13/no-psk-exts utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'start': events 1-2 | |tls13/change_cipher_spec.c:326:13: | 326 | static void start(unsigned ccs_check) | | ^ | | | | | (1) entry to 'start' |...... | 332 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 318 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 322 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13/psk-dumbfw utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/no-psk-exts.c:227:6: | 227 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 233 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 219 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 223 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 133 | | 134 | gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 141 | fail("error in fopen\n"); | 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 143 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 145 | fp) > 0); | 146 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 161 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 164 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 165 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 166 | index1 = ret; | | ~ | | | | | (33) ...to here | 167 | | 168 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (37) ...to here | <------+ | 'doit': events 38-57 | |tls13/ocsp-client.c:168:21: | 168 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 169 | fp = fopen(certfile3, "wb"); | 170 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... | 171 | fail("error in fopen\n"); | 172 | assert(fwrite(cli_cert_pem, 1, strlen((char *)cli_cert_pem), fp) > 0); | | ~ | | | | | (40) ...to here | | (41) following 'true' branch... | 173 | assert(fwrite(cli_key_pem, 1, strlen((char *)cli_key_pem), fp) > 0); | | ~ | | | | | (42) ...to here | | (43) following 'true' branch... | 174 | fclose(fp); | | ~ | | | | | (44) ...to here |...... | 178 | if (ret < 0) | | ~ | | | | | (45) following 'false' branch... | 179 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 180 | index2 = ret; | | ~ | | | | | (46) ...to here |...... | 187 | if (ret < 0) | | ~ | | | | | (47) following 'false' branch... |...... | 191 | ret = gnutls_certificate_set_ocsp_status_request_mem( | | ~ | | | | | (48) ...to here | 192 | clicred, &ocsp_resp1, index1, GNUTLS_X509_FMT_DER); | 193 | if (ret < 0) | | ~ | | | | | (49) following 'false' branch... |...... | 198 | gnutls_certificate_set_verify_flags(clicred, | | ~ | | | | | (50) ...to here | 199 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 200 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (51) following 'false' branch... |...... | 204 | ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | | ~ | | | | | (52) ...to here | 205 | GNUTLS_X509_FMT_PEM); | 206 | if (ret < 0) { | | ~ | | | | | (53) following 'false' branch... |...... | 210 | ret = gnutls_certificate_set_x509_trust_mem(xcred, &subca3_cert, | | ~ | | | | | (54) ...to here | 211 | GNUTLS_X509_FMT_PEM); | 212 | if (ret < 0) { | | ~ | | | | | (55) following 'false' branch... |...... | 216 | _test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", | | ~ | | | | | (56) ...to here | | (57) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 58-70 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (58) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... |...... | 70 | gnutls_transport_set_push_function(server, server_push); | | ~ | | | | | (60) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (61) following 'true' branch (when 'require_cert_80(D) != 0')... | 75 | gnutls_certificate_server_set_request(server, | | ~ | | | | | (62) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (63) following 'false' branch... |...... | 82 | if (host) { | | ~ | | | | | (64) ...to here | | (65) following 'true' branch (when 'host_84(D)' is non-NULL)... | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ~~ | | || | | |(66) ...to here | | (67) following 'true' branch... | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (68) ...to here | | (69) while looking for null terminator for argument 1 ('_9') of 'strlen'... | | (70) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ tls13/ocsp-client.c: In function 'doit': tls13/ocsp-client.c:142:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 133 | | 134 | gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-17 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 140 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 141 | fail("error in fopen\n"); | 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | tls13/ocsp-client.c:144:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 144 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 133 | | 134 | gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-19 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 140 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... | 141 | fail("error in fopen\n"); | 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 143 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | tls13/ocsp-client.c:159:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 159 | assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 133 | | 134 | gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 141 | fail("error in fopen\n"); | 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 143 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 145 | fp) > 0); | 146 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-30 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 155 | | 156 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 157 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | | ~ | | | | | (29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | tls13/ocsp-client.c:160:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 160 | assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 133 | | 134 | gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 141 | fail("error in fopen\n"); | 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 143 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 145 | fp) > 0); | 146 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-32 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 155 | | 156 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 157 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 160 | assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | | ~ | | | | | (31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | tls13/ocsp-client.c:172:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 172 | assert(fwrite(cli_cert_pem, 1, strlen((char *)cli_cert_pem), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 133 | | 134 | gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 141 | fail("error in fopen\n"); | 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 143 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 145 | fp) > 0); | 146 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 161 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 164 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 165 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 166 | index1 = ret; | | ~ | | | | | (33) ...to here | 167 | | 168 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (37) ...to here | <------+ | 'doit': events 38-43 | |tls13/ocsp-client.c:168:21: | 168 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 169 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (39) opened here | 170 | if (fp == NULL) | | ~ | | | | | (40) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (41) following 'false' branch... | 171 | fail("error in fopen\n"); | 172 | assert(fwrite(cli_cert_pem, 1, strlen((char *)cli_cert_pem), fp) > 0); | | ~ | | | | | (42) ...to here | | (43) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (39) | tls13/ocsp-client.c:173:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 173 | assert(fwrite(cli_key_pem, 1, strlen((char *)cli_key_pem), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... | 132 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (5) ...to here | | (6) following 'true' branch... | 133 | | 134 | gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | | ~ | | | | | (7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... | 141 | fail("error in fopen\n"); | 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | | ~ | | | | | (14) ...to here | | (15) following 'true' branch... | 143 | strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | | ~ | | | | | (16) ...to here | | (17) following 'true' branch... | 145 | fp) > 0); | 146 | fclose(fp); | | ~ | | | | | (18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (24) ...to here | <------+ | 'doit': events 25-34 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... | 158 | fail("error in fopen\n"); | 159 | assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | | ~ | | | | | (27) ...to here | | (28) following 'true' branch... | 160 | assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | | ~ | | | | | (29) ...to here | | (30) following 'true' branch... | 161 | fclose(fp); | | ~ | | | | | (31) ...to here |...... | 164 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... | 165 | fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 166 | index1 = ret; | | ~ | | | | | (33) ...to here | 167 | | 168 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... | 287 | return NULL; | | ~ | | | | | (37) ...to here | <------+ | 'doit': events 38-45 | |tls13/ocsp-client.c:168:21: | 168 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 169 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (39) opened here | 170 | if (fp == NULL) | | ~ | | | | | (40) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (41) following 'false' branch... | 171 | fail("error in fopen\n"); | 172 | assert(fwrite(cli_cert_pem, 1, strlen((char *)cli_cert_pem), fp) > 0); | | ~ | | | | | (42) ...to here | | (43) following 'true' branch... | 173 | assert(fwrite(cli_key_pem, 1, strlen((char *)cli_key_pem), fp) > 0); | | ~ | | | | | (44) ...to here | | (45) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (39) | CCLD tls13/psk-ke-modes CCLD safe-renegotiation/srn0 utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'run_test': events 1-2 | |tls13/psk-dumbfw.c:289:13: | 289 | static void run_test(const char *prio) | | ^ | | | | | (1) entry to 'run_test' |...... | 295 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 281 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 285 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... | 152 | fail("Child died with signal %d\n", WTERMSIG(status)); | | ~ | | | | | (9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD safe-renegotiation/srn1 CCLD safe-renegotiation/srn2 CCLD safe-renegotiation/srn3 CCLD safe-renegotiation/srn4 CCLD safe-renegotiation/srn5 CCLD dtls-stress make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests' make check-TESTS make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.9/tests' ../build-aux/test-driver: line 119: 107904 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/supported_versions ../build-aux/test-driver: line 119: 107914 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/post-handshake-without-cert ../build-aux/test-driver: line 119: 107901 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/tls12-no-tls13-exts ../build-aux/test-driver: line 119: 107913 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/post-handshake-with-cert ../build-aux/test-driver: line 119: 107922 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/cookie ../build-aux/test-driver: line 119: 107931 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/key_share ../build-aux/test-driver: line 119: 107946 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/prf ../build-aux/test-driver: line 119: 107940 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/prf-early ../build-aux/test-driver: line 119: 107954 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/post-handshake-with-cert-ticket ../build-aux/test-driver: line 119: 107959 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-rollback-detection ../build-aux/test-driver: line 119: 107968 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls11-rollback-detection ../build-aux/test-driver: line 119: 107969 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-check-rollback-val ../build-aux/test-driver: line 119: 107974 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls11-check-rollback-val ../build-aux/test-driver: line 119: 107987 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/post-handshake-with-cert-auto ../build-aux/test-driver: line 119: 107998 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/anti_replay ../build-aux/test-driver: line 119: 107995 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/post-handshake-with-psk ../build-aux/test-driver: line 119: 108006 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/compress-cert ../build-aux/test-driver: line 119: 108029 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/compress-cert-cli ../build-aux/test-driver: line 119: 108037 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/hello_retry_request ../build-aux/test-driver: line 119: 108038 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/compress-cert-neg2 ../build-aux/test-driver: line 119: 108014 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/compress-cert-neg ../build-aux/test-driver: line 119: 108046 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/hello_retry_request_resume ../build-aux/test-driver: line 119: 108070 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/key_update_multiple ../build-aux/test-driver: line 119: 108063 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/psk-ext ../build-aux/test-driver: line 119: 108069 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/key_update ../build-aux/test-driver: line 119: 108086 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/multi-ocsp ../build-aux/test-driver: line 119: 108085 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/key_limits ../build-aux/test-driver: line 119: 108102 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/change_cipher_spec ../build-aux/test-driver: line 119: 108098 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/ocsp-client ../build-aux/test-driver: line 119: 108115 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 ../build-aux/test-driver: line 119: 108114 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-cipher-neg FAIL: tls13/no-psk-exts ../build-aux/test-driver: line 119: 108123 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/psk-dumbfw ../build-aux/test-driver: line 119: 108131 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/psk-ke-modes ../build-aux/test-driver: line 119: 108137 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-early-start ../build-aux/test-driver: line 119: 108149 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-record-2 ../build-aux/test-driver: line 119: 108148 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/no-auto-send-ticket ../build-aux/test-driver: line 119: 108154 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: simple ../build-aux/test-driver: line 119: 108159 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_hmac_fast ../build-aux/test-driver: line 119: 108164 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_pkcs12_cred ../build-aux/test-driver: line 119: 108169 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: cert ../build-aux/test-driver: line 119: 108174 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: certuniqueid ../build-aux/test-driver: line 119: 108183 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-neg-ext-key ../build-aux/test-driver: line 119: 108189 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: certificate_set_x509_crl ../build-aux/test-driver: line 119: 108184 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mpi ../build-aux/test-driver: line 119: 108194 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dn ../build-aux/test-driver: line 119: 108205 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-dn ../build-aux/test-driver: line 119: 108200 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: parse_ca ../build-aux/test-driver: line 119: 108214 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: record-sizes ../build-aux/test-driver: line 119: 108209 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-dn-decode ../build-aux/test-driver: line 119: 108219 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: hostname-check ../build-aux/test-driver: line 119: 108224 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: cve-2008-4989 ../build-aux/test-driver: line 119: 108234 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: chainverify ../build-aux/test-driver: line 119: 108233 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs12_s2k ../build-aux/test-driver: line 119: 108244 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: missingissuer_aia ../build-aux/test-driver: line 119: 108243 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: missingissuer ../build-aux/test-driver: line 119: 108249 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: record-sizes-range ../build-aux/test-driver: line 119: 108254 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: crq_key_id ../build-aux/test-driver: line 119: 108260 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509sign-verify ../build-aux/test-driver: line 119: 108273 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: cve-2009-1415 ../build-aux/test-driver: line 119: 108267 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-verify ../build-aux/test-driver: line 119: 108274 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: cve-2009-1416 SKIP: ssl30-server-kx-neg ../build-aux/test-driver: line 119: 108279 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls10-server-kx-neg ../build-aux/test-driver: line 119: 108284 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls11-server-kx-neg ../build-aux/test-driver: line 119: 108289 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-server-kx-neg SKIP: ssl30-cipher-neg ../build-aux/test-driver: line 119: 108299 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-cipher-neg ../build-aux/test-driver: line 119: 108304 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls11-cipher-neg ../build-aux/test-driver: line 119: 108309 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls10-cipher-neg ../build-aux/test-driver: line 119: 108329 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs12_s2k_pem ../build-aux/test-driver: line 119: 108324 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: crq_apis ../build-aux/test-driver: line 119: 108328 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: init_roundtrip ../build-aux/test-driver: line 119: 108334 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dn2 ../build-aux/test-driver: line 119: 108339 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-rehandshake-cert-3 ../build-aux/test-driver: line 119: 108349 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509_altname ../build-aux/test-driver: line 119: 108344 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: nul-in-x509-names ../build-aux/test-driver: line 119: 108354 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs12_encode ../build-aux/test-driver: line 119: 108364 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_session_set_id ../build-aux/test-driver: line 119: 108369 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rng-fork ../build-aux/test-driver: line 119: 108359 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-x509 ../build-aux/test-driver: line 119: 108374 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-eagain-dtls ../build-aux/test-driver: line 119: 108384 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: resume-dtls ../build-aux/test-driver: line 119: 108383 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: empty_retrieve_function ../build-aux/test-driver: line 119: 108389 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-rehandshake-cert ../build-aux/test-driver: line 119: 108394 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_ext_raw_parse ../build-aux/test-driver: line 119: 108404 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509cert ../build-aux/test-driver: line 119: 108403 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: handshake-large-cert ../build-aux/test-driver: line 119: 108409 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509cert-tl ../build-aux/test-driver: line 119: 108414 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509cert-ct ../build-aux/test-driver: line 119: 108419 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: infoaccess ../build-aux/test-driver: line 119: 108424 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-hello-verify ../build-aux/test-driver: line 119: 108429 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-verify-ed25519-rfc8080 SKIP: mini-dtls-large ../build-aux/test-driver: line 119: 108434 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: trustdb-tofu ../build-aux/test-driver: line 119: 108443 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-alpn ../build-aux/test-driver: line 119: 108444 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-rehandshake-anon ../build-aux/test-driver: line 119: 108454 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-termination ../build-aux/test-driver: line 119: 108459 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-x509-cas ../build-aux/test-driver: line 119: 108464 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-x509-2 ../build-aux/test-driver: line 119: 108469 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs12_simple ../build-aux/test-driver: line 119: 108474 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-emsgsize-dtls SKIP: mini-dtls-heartbeat ../build-aux/test-driver: line 119: 108479 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: chainverify-unsorted ../build-aux/test-driver: line 119: 108484 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-overhead ../build-aux/test-driver: line 119: 108489 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-ffdhe ../build-aux/test-driver: line 119: 108504 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: key-openssl ../build-aux/test-driver: line 119: 108501 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-x509-callbacks ../build-aux/test-driver: line 119: 108509 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: priorities ../build-aux/test-driver: line 119: 108514 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: priorities-groups ../build-aux/test-driver: line 119: 108519 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_x509_privkey_import ../build-aux/test-driver: line 119: 108524 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_x509_crt_list_import ../build-aux/test-driver: line 119: 108529 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: time ../build-aux/test-driver: line 119: 108534 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-server-verify ../build-aux/test-driver: line 119: 108539 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-verify-ext4 ../build-aux/test-driver: line 119: 108544 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-neg-ext4-key ../build-aux/test-driver: line 119: 108549 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: resume-lifetime ../build-aux/test-driver: line 119: 108554 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-srtp ../build-aux/test-driver: line 119: 108559 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rsa-encrypt-decrypt ../build-aux/test-driver: line 119: 108564 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-loss-time ../build-aux/test-driver: line 119: 108574 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls-strcodes ../build-aux/test-driver: line 119: 108573 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-record ../build-aux/test-driver: line 119: 108579 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-record ../build-aux/test-driver: line 119: 108584 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: handshake-timeout ../build-aux/test-driver: line 119: 108589 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-record-range ../build-aux/test-driver: line 119: 108594 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: cert-status ../build-aux/test-driver: line 119: 108599 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rsa-psk ../build-aux/test-driver: line 119: 108609 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sec-params ../build-aux/test-driver: line 119: 108614 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-verify-data ../build-aux/test-driver: line 119: 108619 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: fips-test ../build-aux/test-driver: line 119: 108604 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: global-init ../build-aux/test-driver: line 119: 108629 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-global-load ../build-aux/test-driver: line 119: 108624 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: fips-override-test ../build-aux/test-driver: line 119: 108638 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-extensions ../build-aux/test-driver: line 119: 108639 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: name-constraints ../build-aux/test-driver: line 119: 108644 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: long-session-id ../build-aux/test-driver: line 119: 108649 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-x509-callbacks-intr ../build-aux/test-driver: line 119: 108655 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-lowmtu ../build-aux/test-driver: line 119: 108659 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key_file-late ../build-aux/test-driver: line 119: 108664 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: crlverify ../build-aux/test-driver: line 119: 108669 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-discard ../build-aux/test-driver: line 119: 108674 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-record-failure ../build-aux/test-driver: line 119: 108679 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: openconnect-dtls12 ../build-aux/test-driver: line 119: 108688 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-rehandshake-cert-2 ../build-aux/test-driver: line 119: 108689 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: custom-urls ../build-aux/test-driver: line 119: 108694 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key_mem ../build-aux/test-driver: line 119: 108699 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key_file ../build-aux/test-driver: line 119: 108704 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-rehandshake-cert-auto ../build-aux/test-driver: line 119: 108709 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-rehandshake-set-prio ../build-aux/test-driver: line 119: 108714 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-chain-unsorted ../build-aux/test-driver: line 119: 108719 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-verify-duplicate ../build-aux/test-driver: line 119: 108724 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-verify-with-crl ../build-aux/test-driver: line 119: 108729 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-mtu ../build-aux/test-driver: line 119: 108734 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: privkey-verify-broken ../build-aux/test-driver: line 119: 108739 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-record-asym ../build-aux/test-driver: line 119: 108744 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: key-import-export ../build-aux/test-driver: line 119: 108749 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: priority-set ../build-aux/test-driver: line 119: 108754 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: priority-set2 ../build-aux/test-driver: line 119: 108759 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pubkey-import-export ../build-aux/test-driver: line 119: 108764 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-is-secure ../build-aux/test-driver: line 119: 108769 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: spki ../build-aux/test-driver: line 119: 108774 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: spki-abstract ../build-aux/test-driver: line 119: 108784 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rsa-rsa-pss ../build-aux/test-driver: line 119: 108779 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rsa-rsa-oaep ../build-aux/test-driver: line 119: 108789 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-fork ../build-aux/test-driver: line 119: 108799 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509cert-invalid ../build-aux/test-driver: line 119: 108794 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-key-material ../build-aux/test-driver: line 119: 108804 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-ext-register ../build-aux/test-driver: line 119: 108809 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-supplemental ../build-aux/test-driver: line 119: 108814 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls0-9 ../build-aux/test-driver: line 119: 108823 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: record-retvals ../build-aux/test-driver: line 119: 108824 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: duplicate-extensions ../build-aux/test-driver: line 119: 108829 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-server-name ../build-aux/test-driver: line 119: 108834 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-etm ../build-aux/test-driver: line 119: 108839 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-force-etm ../build-aux/test-driver: line 119: 108844 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-cert-callback ../build-aux/test-driver: line 119: 108849 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: alerts ../build-aux/test-driver: line 119: 108859 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: client-sign-md5-rep ../build-aux/test-driver: line 119: 108858 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-invalid-key-exchanges ../build-aux/test-driver: line 119: 108864 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: session-rdn-read ../build-aux/test-driver: line 119: 108869 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-cert-key-exchange ../build-aux/test-driver: line 119: 108874 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-cert-callback-ocsp ../build-aux/test-driver: line 119: 108879 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_ocsp_resp_list_import2 ../build-aux/test-driver: line 119: 108884 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: server-sign-md5-rep ../build-aux/test-driver: line 119: 108889 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: privkey-keygen ../build-aux/test-driver: line 119: 108904 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs7-gen ../build-aux/test-driver: line 119: 108899 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: no-signal ../build-aux/test-driver: line 119: 108895 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-tls-nonblock ../build-aux/test-driver: line 119: 108909 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-etm ../build-aux/test-driver: line 119: 108929 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: cipher-alignment ../build-aux/test-driver: line 119: 108923 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509sign-verify-ecdsa ../build-aux/test-driver: line 119: 108922 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509sign-verify-rsa ../build-aux/test-driver: line 119: 108924 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509sign-verify-gost ../build-aux/test-driver: line 119: 108948 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: prf ../build-aux/test-driver: line 119: 108940 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: oids ../build-aux/test-driver: line 119: 108938 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: atfork ../build-aux/test-driver: line 119: 108949 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: psk-file ../build-aux/test-driver: line 119: 108959 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: post-client-hello-change-prio ../build-aux/test-driver: line 119: 108954 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: priority-init2 ../build-aux/test-driver: line 119: 108969 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: status-request ../build-aux/test-driver: line 119: 108966 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: status-request-ok ../build-aux/test-driver: line 119: 108989 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs8-key-decode ../build-aux/test-driver: line 119: 108988 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: fallback-scsv ../build-aux/test-driver: line 119: 108983 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-verify-ext ../build-aux/test-driver: line 119: 108979 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rfc7633-missing ../build-aux/test-driver: line 119: 109008 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: key-usage-rsa ../build-aux/test-driver: line 119: 108995 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: urls ../build-aux/test-driver: line 119: 109009 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rfc7633-ok ../build-aux/test-driver: line 119: 109006 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-rehandshake-cert ../build-aux/test-driver: line 119: 109029 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: record-timeouts ../build-aux/test-driver: line 119: 109024 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-session-verify-function ../build-aux/test-driver: line 119: 109023 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: key-usage-ecdhe-rsa ../build-aux/test-driver: line 119: 109028 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: auto-verify ../build-aux/test-driver: line 119: 109034 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-dtls-hello-verify-48 ../build-aux/test-driver: line 119: 109039 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set-default-prio ../build-aux/test-driver: line 119: 109048 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-anon-upgrade ../build-aux/test-driver: line 119: 109049 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tlsext-decoding ../build-aux/test-driver: line 119: 109054 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rsa-psk-cb ../build-aux/test-driver: line 119: 109067 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls-ids ../build-aux/test-driver: line 119: 109069 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rehandshake-switch-cert-allow ../build-aux/test-driver: line 119: 109068 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rehandshake-switch-cert ../build-aux/test-driver: line 119: 109074 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rehandshake-switch-cert-client ../build-aux/test-driver: line 119: 109080 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rehandshake-switch-cert-client-allow ../build-aux/test-driver: line 119: 109085 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: handshake-versions ../build-aux/test-driver: line 119: 109089 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-handshake-versions ../build-aux/test-driver: line 119: 109094 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-max-record ../build-aux/test-driver: line 119: 109104 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: alpn-server-prec ../build-aux/test-driver: line 119: 109099 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-max-record ../build-aux/test-driver: line 119: 109109 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: ocsp-filename-memleak ../build-aux/test-driver: line 119: 109114 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dh-params ../build-aux/test-driver: line 119: 109119 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rehandshake-ext-secret ../build-aux/test-driver: line 119: 109124 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pcert-list ../build-aux/test-driver: line 119: 109129 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: session-export-funcs ../build-aux/test-driver: line 119: 109134 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: handshake-false-start ../build-aux/test-driver: line 119: 109139 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: version-checks ../build-aux/test-driver: line 119: 109144 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: key-material-dtls ../build-aux/test-driver: line 119: 109149 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: key-material-set-dtls ../build-aux/test-driver: line 119: 109154 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: name-constraints-merge ../build-aux/test-driver: line 119: 109164 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: crq-basic ../build-aux/test-driver: line 119: 109159 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: crl-basic ../build-aux/test-driver: line 119: 109174 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: custom-urls-override ../build-aux/test-driver: line 119: 109169 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: send-client-cert SKIP: rehandshake-switch-srp-id SKIP: srpbase64 ../build-aux/test-driver: line 119: 109184 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rehandshake-switch-psk-id ../build-aux/test-driver: line 119: 109179 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: hex ../build-aux/test-driver: line 119: 109198 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: base64 ../build-aux/test-driver: line 119: 109205 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs1-digest-info ../build-aux/test-driver: line 119: 109214 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key_file_der ../build-aux/test-driver: line 119: 109209 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key ../build-aux/test-driver: line 119: 109219 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_pkcs12_key ../build-aux/test-driver: line 119: 109234 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls11-cert-key-exchange ../build-aux/test-driver: line 119: 109224 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: crt_apis SKIP: ssl30-cert-key-exchange ../build-aux/test-driver: line 119: 109229 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-cert-key-exchange ../build-aux/test-driver: line 119: 109239 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls10-cert-key-exchange ../build-aux/test-driver: line 119: 109258 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls12-cert-key-exchange ../build-aux/test-driver: line 119: 109257 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-cert-callback-legacy ../build-aux/test-driver: line 119: 109259 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls10-cert-key-exchange ../build-aux/test-driver: line 119: 109264 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: keylog-env ../build-aux/test-driver: line 119: 109274 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tlsfeature-ext ../build-aux/test-driver: line 119: 109269 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 ../build-aux/test-driver: line 119: 109279 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-rehandshake-cert-2 FAIL: ssl2-hello ../build-aux/test-driver: line 119: 109284 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-session-ticket-lost ../build-aux/test-driver: line 119: 109289 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tlsfeature-crt ../build-aux/test-driver: line 119: 109299 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: resume-with-false-start ../build-aux/test-driver: line 119: 109298 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-rehandshake-cert-3 SKIP: srp ../build-aux/test-driver: line 119: 109304 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key_file_ocsp ../build-aux/test-driver: line 119: 109309 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: client-fastopen ../build-aux/test-driver: line 119: 109314 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rng-sigint ../build-aux/test-driver: line 119: 109327 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: safe-renegotiation/srn0 ../build-aux/test-driver: line 119: 109335 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: safe-renegotiation/srn1 ../build-aux/test-driver: line 119: 109343 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: safe-renegotiation/srn2 ../build-aux/test-driver: line 119: 109359 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: safe-renegotiation/srn3 ../build-aux/test-driver: line 119: 109358 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: safe-renegotiation/srn4 ../build-aux/test-driver: line 119: 109367 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: safe-renegotiation/srn5 ../build-aux/test-driver: line 119: 109372 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rsa-illegal-import ../build-aux/test-driver: line 119: 109377 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_ocsp_multi_invalid ../build-aux/test-driver: line 119: 109382 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_key ../build-aux/test-driver: line 119: 109387 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key_file_ocsp_multi2 ../build-aux/test-driver: line 119: 109392 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_ocsp_multi_unknown ../build-aux/test-driver: line 119: 109397 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_ocsp_multi_pem ../build-aux/test-driver: line 119: 109402 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-ext-not-in-dtls ../build-aux/test-driver: line 119: 109407 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_key_utf8 ../build-aux/test-driver: line 119: 109412 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key_utf8 ../build-aux/test-driver: line 119: 109417 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: insecure_key ../build-aux/test-driver: line 119: 109422 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: handshake-large-packet ../build-aux/test-driver: line 119: 109427 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: client_dsa_key ../build-aux/test-driver: line 119: 109432 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: server_ecdsa_key ../build-aux/test-driver: line 119: 109437 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-session-ext-register ../build-aux/test-driver: line 119: 109446 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-session-supplemental ../build-aux/test-driver: line 119: 109447 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: multi-alerts ../build-aux/test-driver: line 119: 109457 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs7-cat-parse ../build-aux/test-driver: line 119: 109452 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: naked-alerts ../build-aux/test-driver: line 119: 109462 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_known_dh_params_x509 ../build-aux/test-driver: line 119: 109467 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_known_dh_params_anon ../build-aux/test-driver: line 119: 109477 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: session-tickets-ok ../build-aux/test-driver: line 119: 109472 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_known_dh_params_psk ../build-aux/test-driver: line 119: 109482 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: session-tickets-missing ../build-aux/test-driver: line 119: 109488 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_key_file_legacy ../build-aux/test-driver: line 119: 109497 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: status-request-ext ../build-aux/test-driver: line 119: 109496 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_x509_crt_sign ../build-aux/test-driver: line 119: 109502 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_x509_crq_sign ../build-aux/test-driver: line 119: 109513 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rng-no-onload ../build-aux/test-driver: line 119: 109507 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-repro-20170915 ../build-aux/test-driver: line 119: 109517 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls1-2-mtu-check ../build-aux/test-driver: line 119: 109522 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: crl_apis ../build-aux/test-driver: line 119: 109536 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: no-extensions ../build-aux/test-driver: line 119: 109528 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: cert_verify_inv_utf8 ../build-aux/test-driver: line 119: 109537 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: no-status-request ../build-aux/test-driver: line 119: 109542 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: hostname-check-utf8 ../build-aux/test-driver: line 119: 109556 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs7 ../build-aux/test-driver: line 119: 109549 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs8-key-decode-encrypted ../build-aux/test-driver: line 119: 109557 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: priority-mix ../build-aux/test-driver: line 119: 109562 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: send-data-before-handshake ../build-aux/test-driver: line 119: 109572 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: crt_inv_write ../build-aux/test-driver: line 119: 109567 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: recv-data-before-handshake ../build-aux/test-driver: line 119: 109577 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509sign-verify-error ../build-aux/test-driver: line 119: 109582 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rng-op-nonce ../build-aux/test-driver: line 119: 109587 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rng-op-random ../build-aux/test-driver: line 119: 109597 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-dn-decode-compat ../build-aux/test-driver: line 119: 109592 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rng-op-key ../build-aux/test-driver: line 119: 109602 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: ip-check ../build-aux/test-driver: line 119: 109607 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: mini-x509-ipaddr ../build-aux/test-driver: line 119: 109612 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: trust-store ../build-aux/test-driver: line 119: 109617 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: base64-raw ../build-aux/test-driver: line 119: 109627 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dhex509self ../build-aux/test-driver: line 119: 109624 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: random-art ../build-aux/test-driver: line 119: 109632 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dss-sig-val ../build-aux/test-driver: line 119: 109642 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-session-ext-override ../build-aux/test-driver: line 119: 109637 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-pk-api ../build-aux/test-driver: line 119: 109647 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: record-pad ../build-aux/test-driver: line 119: 109652 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-server-kx-neg ../build-aux/test-driver: line 119: 109657 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: gnutls_ext_raw_parse_dtls ../build-aux/test-driver: line 119: 109662 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: key-export-pkcs8 ../build-aux/test-driver: line 119: 109667 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: null_retrieve_function ../build-aux/test-driver: line 119: 109676 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-record-size-limit ../build-aux/test-driver: line 119: 109677 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-crt_type-neg ../build-aux/test-driver: line 119: 109682 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: resume-with-stek-expiration ../build-aux/test-driver: line 119: 109687 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: resume-with-previous-stek PASS: dh-compute PASS: ecdh-compute ../build-aux/test-driver: line 119: 109697 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-record-size-limit-asym ../build-aux/test-driver: line 119: 109692 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rawpk-api ../build-aux/test-driver: line 119: 109722 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-verify-newapi ../build-aux/test-driver: line 119: 109711 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-verify-data-newapi ../build-aux/test-driver: line 119: 109727 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: iov ../build-aux/test-driver: line 119: 109721 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: sign-verify-deterministic ../build-aux/test-driver: line 119: 109732 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: aead-cipher-vec ../build-aux/test-driver: line 119: 109737 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-without-timeout-func ../build-aux/test-driver: line 119: 109747 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 ../build-aux/test-driver: line 119: 109744 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: status-request-revoked FAIL: buffer ../build-aux/test-driver: line 119: 109752 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: set_x509_ocsp_multi_cli ../build-aux/test-driver: line 119: 109758 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: kdf-api ../build-aux/test-driver: line 119: 109767 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: handshake-write ../build-aux/test-driver: line 119: 109765 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: keylog-func ../build-aux/test-driver: line 119: 109772 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509cert-dntypes ../build-aux/test-driver: line 119: 109779 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: id-on-xmppAddr ../build-aux/test-driver: line 119: 109792 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509-upnconstraint ../build-aux/test-driver: line 119: 109791 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: ciphersuite-name ../build-aux/test-driver: line 119: 109786 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-compat-mode ../build-aux/test-driver: line 119: 109797 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: xts-key-check ../build-aux/test-driver: line 119: 109811 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs7-verify-double-free ../build-aux/test-driver: line 119: 109802 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: cipher-padding ../build-aux/test-driver: line 119: 109812 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: fips-rsa-sizes ../build-aux/test-driver: line 119: 109817 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-rehandshake-ticket ../build-aux/test-driver: line 119: 109822 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pathbuf ../build-aux/test-driver: line 119: 109831 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: psk-importer ../build-aux/test-driver: line 119: 109832 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-force-ems ../build-aux/test-driver: line 119: 109837 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: privkey-derive ../build-aux/test-driver: line 119: 109843 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dh-compute2 ../build-aux/test-driver: line 119: 109852 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-channel-binding ../build-aux/test-driver: line 119: 109851 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: ecdh-compute2 ../build-aux/test-driver: line 119: 109857 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: strict-der ../build-aux/test-driver: line 119: 109862 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: system-prio-file ../build-aux/test-driver: line 119: 109867 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls-pthread ../build-aux/test-driver: line 119: 109872 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: fips-mode-pthread ../build-aux/test-driver: line 119: 109877 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dtls-pthread ../build-aux/test-driver: line 119: 109882 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: rng-pthread ../build-aux/test-driver: line 119: 109887 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-cert-import-url-exts ../build-aux/test-driver: line 119: 109892 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-get-exts ../build-aux/test-driver: line 119: 109897 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-get-raw-issuer-exts ../build-aux/test-driver: line 119: 109902 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-cert-import-url4-exts ../build-aux/test-driver: line 119: 109910 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-chainverify ../build-aux/test-driver: line 119: 109919 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-get-issuer ../build-aux/test-driver: line 119: 109926 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-is-known ../build-aux/test-driver: line 119: 109934 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-combo ../build-aux/test-driver: line 119: 109942 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-privkey ../build-aux/test-driver: line 119: 109957 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-pubkey-import-ecdsa ../build-aux/test-driver: line 119: 109958 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-pubkey-import-rsa ../build-aux/test-driver: line 119: 109967 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-import-url-privkey ../build-aux/test-driver: line 119: 109968 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-privkey-fork ../build-aux/test-driver: line 119: 109976 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-ec-privkey-test ../build-aux/test-driver: line 119: 109981 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-privkey-always-auth ../build-aux/test-driver: line 119: 109986 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-privkey-export ../build-aux/test-driver: line 119: 109994 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-import-with-pin ../build-aux/test-driver: line 119: 110010 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-pin-func ../build-aux/test-driver: line 119: 110002 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-privkey-pthread ../build-aux/test-driver: line 119: 110018 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-obj-import ../build-aux/test-driver: line 119: 110023 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-privkey-fork-reinit ../build-aux/test-driver: line 119: 110033 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-privkey-safenet-always-auth ../build-aux/test-driver: line 119: 110028 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-mechanisms ../build-aux/test-driver: line 119: 110041 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-rsa-pss-privkey-test ../build-aux/test-driver: line 119: 110049 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/tls-neg-pkcs11-key ../build-aux/test-driver: line 119: 110057 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-privkey-generate ../build-aux/test-driver: line 119: 110065 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/gnutls_x509_crt_list_import_url ../build-aux/test-driver: line 119: 110081 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/pkcs11-eddsa-privkey-test ../build-aux/test-driver: line 119: 110073 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/gnutls_pcert_list_import_x509_file ../build-aux/test-driver: line 119: 110090 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-obj-raw ../build-aux/test-driver: line 119: 110091 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-token-raw ../build-aux/test-driver: line 119: 110101 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: ocsp ../build-aux/test-driver: line 119: 110096 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11-import-url-privkey-caps ../build-aux/test-driver: line 119: 110106 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: openssl ../build-aux/test-driver: line 119: 110112 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509self ../build-aux/test-driver: line 119: 110117 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: x509dn ../build-aux/test-driver: line 119: 110121 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: anonself ../build-aux/test-driver: line 119: 110126 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pskself ../build-aux/test-driver: line 119: 110141 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: setcredcrash ../build-aux/test-driver: line 119: 110131 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pskself2 ../build-aux/test-driver: line 119: 110136 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: dhepskself ../build-aux/test-driver: line 119: 110146 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-resume-x509 ../build-aux/test-driver: line 119: 110156 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-resume-anon ../build-aux/test-driver: line 119: 110155 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls12-resume-psk ../build-aux/test-driver: line 119: 110161 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-resume-x509 ../build-aux/test-driver: line 119: 110166 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-resume-psk ../build-aux/test-driver: line 119: 110171 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-early-data ../build-aux/test-driver: line 119: 110180 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-early-data-neg2 ../build-aux/test-driver: line 119: 110181 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13-early-data-neg ../build-aux/test-driver: line 119: 110191 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: record-sendfile ../build-aux/test-driver: line 119: 110186 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: resume-with-record-size-limit ../build-aux/test-driver: line 119: 110199 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: tls13/post-handshake-with-cert-pkcs11 ../build-aux/test-driver: line 119: 110212 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: global-init-override ../build-aux/test-driver: line 119: 110207 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/tls-neg-pkcs11-no-key ../build-aux/test-driver: line 119: 110220 Illegal instruction (core dumped) "$@" >> "$log_file" 2>&1 FAIL: pkcs11/distrust-after SKIP: tpm2.sh FAIL: rfc2253-escape-test.sh SKIP: ktls.sh FAIL: dtls/dtls.sh FAIL: systemkey.sh FAIL: rsa-md5-collision/rsa-md5-collision.sh FAIL: dtls/dtls-resume.sh SKIP: starttls.sh SKIP: starttls-ftp.sh SKIP: starttls-smtp.sh SKIP: starttls-lmtp.sh SKIP: starttls-xmpp.sh SKIP: starttls-pop3.sh SKIP: starttls-sieve.sh SKIP: starttls-nntp.sh SKIP: ocsp-tests/ocsp-must-staple-connection.sh FAIL: ocsp-tests/ocsp-test.sh FAIL: cipher-listings.sh PASS: pkgconfig.sh FAIL: ocsp-tests/ocsp-tls-connection.sh FAIL: psktool.sh FAIL: ocsp-tests/ocsp-load-chain.sh FAIL: fastopen.sh FAIL: server-multi-keys.sh FAIL: sni-hostname.sh FAIL: ocsp-tests/ocsptool.sh FAIL: cert-reencoding.sh FAIL: pkcs7-cat.sh FAIL: long-crl.sh FAIL: serv-udp.sh FAIL: gnutls-cli-save-data.sh FAIL: gnutls-cli-debug.sh FAIL: sni-resume.sh FAIL: logfile-option.sh FAIL: ocsp-tests/ocsp-signer-verify.sh PASS: cfg-test.sh PASS: sanity-lib.sh FAIL: system-override-sig.sh FAIL: system-override-hash.sh FAIL: gnutls-cli-resume.sh PASS: system-override-invalid.sh FAIL: system-override-curves.sh FAIL: profile-tests.sh FAIL: server-weak-keys.sh FAIL: system-override-versions.sh FAIL: system-override-profiles.sh FAIL: system-override-sig-tls.sh FAIL: system-override-hash-filters-prf.sh FAIL: system-override-sig-allowlist.sh FAIL: system-override-hash-allowlist.sh FAIL: system-override-tls.sh FAIL: system-override-curves-allowlist.sh FAIL: system-override-special-allowlist.sh FAIL: protocol-set-allowlist.sh FAIL: system-override-allow-rsa-pkcs1-encrypt.sh FAIL: system-override-kx.sh FAIL: system-override-default-priority-string.sh FAIL: system-override-versions-allowlist.sh FAIL: gnutls-cli-self-signed.sh FAIL: p11-kit-trust.sh SKIP: testpkcs11.sh SKIP: certtool-pkcs11.sh SKIP: pkcs11-tool.sh SKIP: p11-kit-load.sh FAIL: gnutls-cli-invalid-crl.sh PASS: pqc-hybrid-kx.sh FAIL: gnutls-cli-rawpk.sh FAIL: dh-fips-approved.sh ============================================================================ Testsuite summary for GnuTLS 3.8.9 ============================================================================ # TOTAL: 502 # PASS: 7 # SKIP: 23 # XFAIL: 0 # FAIL: 472 # XPASS: 0 # ERROR: 0 ============================================================================ See tests/test-suite.log for debugging. Some test(s) failed. Please report this to bugs@gnutls.org, together with the test-suite.log file (gzipped) and your system information. Thanks. ============================================================================ make[4]: *** [Makefile:10208: test-suite.log] Error 1 make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests' make[3]: *** [Makefile:10343: check-TESTS] Error 2 make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests' make[2]: *** [Makefile:13611: check-am] Error 2 make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests' make[1]: *** [Makefile:10101: check-recursive] Error 1 make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.9/tests' make: *** [Makefile:2931: check-recursive] Error 1 ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list gnutls-3.8.9-1-riscv64-build.log gnutls-3.8.9-1-riscv64-check.log gnutls-3.8.9-1-riscv64-prepare.log sent 81 bytes received 213,808 bytes 427,778.00 bytes/sec total size is 6,591,753 speedup is 30.82