==> Building on scovillain ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/gnutls ./ .SRCINFO 1,352 100% 0.00kB/s 0:00:00 1,352 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=10/12) .nvchecker.toml 71 100% 69.34kB/s 0:00:00 71 100% 69.34kB/s 0:00:00 (xfr#2, to-chk=9/12) MR1866.patch 2,337 100% 2.23MB/s 0:00:00 2,337 100% 2.23MB/s 0:00:00 (xfr#3, to-chk=8/12) PKGBUILD 2,842 100% 2.71MB/s 0:00:00 2,842 100% 2.71MB/s 0:00:00 (xfr#4, to-chk=7/12) config 303 100% 295.90kB/s 0:00:00 303 100% 295.90kB/s 0:00:00 (xfr#5, to-chk=6/12) gnutls-3.8.7-1.log 372 100% 363.28kB/s 0:00:00 372 100% 363.28kB/s 0:00:00 (xfr#6, to-chk=5/12) gnutls-ktls_disable_keyupdate_test.patch 334 100% 326.17kB/s 0:00:00 334 100% 326.17kB/s 0:00:00 (xfr#7, to-chk=4/12) keys/ keys/pgp/ keys/pgp/462225C3B46F34879FC8496CD605848ED7E69871.asc 3,955 100% 643.72kB/s 0:00:00 3,955 100% 643.72kB/s 0:00:00 (xfr#8, to-chk=1/12) keys/pgp/5D46CB0F763405A7053556F47A75A648B3F9220C.asc 669 100% 108.89kB/s 0:00:00 669 100% 108.89kB/s 0:00:00 (xfr#9, to-chk=0/12) sent 8,089 bytes received 244 bytes 16,666.00 bytes/sec total size is 12,060 speedup is 1.45 ==> Ensuring required PGP keys are present...  -> Checking for 462225C3B46F34879FC8496CD605848ED7E69871... ==> Patching arch to riscv64... ==> Running extra-riscv64-build -- -d /home/felix/packages/riscv64-pkg-cache:/var/cache/pacman/pkg -l root38 on remote host... [?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [root38]...done ==> Making package: gnutls 3.8.7-1 (Fri Aug 16 12:54:53 2024) ==> Retrieving sources...  -> Downloading gnutls-3.8.7.1.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 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 1 6538k 1 86016 0 0 32627 0 0:03:25 0:00:02 0:03:23 32631 17 6538k 17 1172k 0 0 334k 0 0:00:19 0:00:03 0:00:16 334k 42 6538k 42 2768k 0 0 613k 0 0:00:10 0:00:04 0:00:06 613k 72 6538k 72 4756k 0 0 855k 0 0:00:07 0:00:05 0:00:02 944k 100 6538k 100 6538k 0 0 1019k 0 0:00:06 0:00:06 --:--:-- 1383k  -> Downloading gnutls-3.8.7.1.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 580 100 580 0 0 582 0 --:--:-- --:--:-- --:--:-- 582  -> Found config  -> Found gnutls-ktls_disable_keyupdate_test.patch  -> Found MR1866.patch ==> Validating source files with sha256sums... gnutls-3.8.7.1.tar.xz ... Passed gnutls-3.8.7.1.tar.xz.sig ... Skipped config ... Passed gnutls-ktls_disable_keyupdate_test.patch ... Passed MR1866.patch ... Passed ==> Verifying source file signatures with gpg... gnutls-3.8.7.1.tar.xz ... Passed ==> Making package: gnutls 3.8.7-1 (Fri Aug 16 12:55:27 2024) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (12) New Version Net Change Download Size extra/docbook-xml 4.5-10 1.96 MiB extra/docbook-xsl 1.79.2-8 26.32 MiB core/expat 2.6.2-1 0.38 MiB core/glib2-docs 2.80.4-1 63.35 MiB extra/libxslt 1.1.42-1 0.72 MiB extra/mpdecimal 4.0.0-2 0.29 MiB core/python 3.12.4-1 106.78 MiB extra/python-lxml 5.2.2-1 4.37 MiB extra/python-pygments 2.18.0-1 14.10 MiB extra/gtk-doc 1.34.0-1 2.63 MiB core/net-tools 2.10-2 0.43 MiB extra/tpm2-tools 5.6-1 1.41 MiB 0.71 MiB Total Download Size: 0.71 MiB Total Installed Size: 222.74 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... tpm2-tools-5.6-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing docbook-xml... etc/xml/catalog:1: parser error : Document is empty ^ installing libxslt... Optional dependencies for libxslt python: Python bindings [pending] installing docbook-xsl... installing glib2-docs... installing expat... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter 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 installing python-pygments... installing gtk-doc... Optional dependencies for gtk-doc dblatex: PDF support installing net-tools... installing tpm2-tools... Optional dependencies for tpm2-tools tpm2-abrmd: user space resource manager [?25h==> Retrieving sources...  -> Found gnutls-3.8.7.1.tar.xz  -> Found gnutls-3.8.7.1.tar.xz.sig  -> Found config  -> Found gnutls-ktls_disable_keyupdate_test.patch  -> Found MR1866.patch ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting gnutls-3.8.7.1.tar.xz with bsdtar ==> Starting prepare()... patching file tests/Makefile.am Hunk #1 succeeded at 520 (offset 16 lines). patching file tests/cert-tests/Makefile.am patching file tests/ocsp-tests/ocsp-must-staple-connection.sh 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/host-cpu-c-abi.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 po/Makevars.template 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 configure.ac:55: warning: The macro 'AC_PROG_CC_C99' is obsolete. configure.ac:55: You should run autoupdate. ./lib/autoconf/c.m4:1662: AC_PROG_CC_C99 is expanded from... configure.ac:55: the top level configure.ac:139: warning: The macro 'AC_HEADER_STDC' is obsolete. configure.ac:139: You should run autoupdate. ./lib/autoconf/headers.m4:663: AC_HEADER_STDC is expanded from... configure.ac:139: the top level configure.ac:374: warning: The macro 'AC_TRY_COMPILE' is obsolete. configure.ac:374: You should run autoupdate. ./lib/autoconf/general.m4:2845: AC_TRY_COMPILE is expanded from... m4/hooks.m4:34: LIBGNUTLS_HOOKS is expanded from... configure.ac:374: the top level 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: 'build-aux/config.sub' is updated autoreconf: 'build-aux/config.guess' is updated autoreconf: 'build-aux/install-sh' is updated 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 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 whether make supports nested variables... (cached) 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 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 stdbool.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 xlocale.h... no checking for sys/select.h... yes checking for langinfo.h... yes 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... 1723813475 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 C99 macros are supported... yes 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 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 strftime_z... 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 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 a french Unicode locale... none checking for a transitional chinese locale... none checking whether mbrtowc handles incomplete characters... guessing 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 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... guessing 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 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 __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 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 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 bool, true, false... 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 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 whether time_t is signed... yes checking whether alarm is declared... yes checking for working mktime... yes checking for struct tm.tm_gmtoff... yes checking for struct tm.tm_zone... yes checking for compound literals... 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 a traditional french locale... none checking for a turkish Unicode locale... none 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 byte ordering is bigendian... (cached) no 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 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 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 __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... (cached) 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 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 whether malloc (0) returns nonnull... (cached) yes 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, 0) returns nonnull... yes 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 bool, true, false... (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 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 for atoll... yes checking whether fdopen sets errno... yes checking for ftruncate... yes checking for getpagesize... yes checking whether getpagesize 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 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 for strtoll... yes checking whether strtoll works... 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 whether the compiler generally respects inline... yes checking for ssize_t... (cached) yes checking for bool, true, false... (cached) no checking for a Python interpreter with version >= 3.6... python checking for python... /usr/bin/python checking for python version... 3.12 checking for python platform... linux checking for GNU default python prefix... ${prefix} checking for GNU default python exec_prefix... ${exec_prefix} checking for python script directory (pythondir)... ${PYTHON_PREFIX}/lib/python3.12/site-packages checking for python extension module directory (pyexecdir)... ${PYTHON_EXEC_PREFIX}/lib/python3.12/site-packages 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 -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 for ranlib... (cached) ranlib 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... none 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 whether to include brotli compression support... yes 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 whether to include zstd compression support... yes checking for libzstd >= 1.3.0... yes checking zstd soname... libzstd.so.1 checking whether OQS_SHA3_set_callbacks is declared... no checking oqs soname... none 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.7 shared 70:1: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: yes 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.7' Making all in gl make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/gl' GEN alloca.h GEN arpa/inet.h GEN fcntl.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.7/gl' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/gl' CC libgnu_la-basename-lgpl.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-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 libgnu_la-read-file.lo CC libgnu_la-stat-time.lo CC libgnu_la-sys_socket.lo CC glthread/libgnu_la-threadlib.lo CC glthread/libgnu_la-tls.lo CC libgnu_la-unistd.lo CC libgnu_la-vsnzprintf.lo CC asnprintf.lo CC fopen.lo CC printf-args.lo CC printf-parse.lo CC vasnprintf.lo CC libgnu_la-xsize.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.7/gl' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/gl' Making all in lib make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib' make all-recursive make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib' Making all in includes make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/includes' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/includes' Making all in x509 make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/x509' make all-am make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.7/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 tls_features.lo CC spki.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.7/lib/x509' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/x509' Making all in auth make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/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.7/lib/auth' Making all in ext make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/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.7/lib/ext' Making all in algorithms make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/algorithms' CC cert_types.lo CC ciphers.lo CC ciphersuites.lo CC ecc.lo CC kx.lo CC protocols.lo CC mac.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.7/lib/algorithms' Making all in extras make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/extras' CC randomart.lo CC hex.lo CCLD libgnutls_extras.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/extras' Making all in accelerated make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/accelerated' make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.7/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.7/lib/accelerated' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/accelerated' Making all in nettle make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/nettle' CC pk.lo CC mpi.lo CC mac.lo CC cipher.lo CC init.lo CC prf.lo CC rnd.lo CC sysrng-linux.lo CC rnd-fuzzer.lo CC gost_keywrap.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 CC gost/magma.lo CC gost/kuznyechik.lo CC gost/acpkm.lo CC gost/cmac-magma.lo CC gost/cmac-kuznyechik.lo CCLD libcrypto.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/nettle' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/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 extv.lo CC secrets.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 dlwrap/brotlidec.lo CC tls13/encrypted_extensions.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.7/lib' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib' Making all in extra make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/extra' Making all in includes make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/extra/includes' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/extra/includes' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/extra' CC gnutls_openssl.lo CC openssl_compat.lo CCLD libgnutls-openssl.la /usr/bin/nm: libgnu_la-fd-hook.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.7/extra' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/extra' Making all in po make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/po' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/po' Making all in src/gl make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl' GEN alloca.h GEN arpa/inet.h GEN inttypes.h GEN fcntl.h GEN error.h GEN malloc/scratch_buffer.gl.h GEN limits.h GEN locale.h GEN netdb.h GEN pthread.h GEN sched.h GEN signal.h GEN stddef.h GEN stdlib.h GEN stdio.h GEN string.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 unistd.h GEN time.h GEN wchar.h make all-recursive make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl' Making all in . make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl' 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-fd-hook.lo CC libgnu_gpl_la-fcntl.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 libgnu_gpl_la-nstrftime.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-setlocale_null-unlocked.lo CC libgnu_gpl_la-sockets.lo CC libgnu_gpl_la-stat-time.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.7/src/gl' Making all in tests make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' GEN ctype.h GEN langinfo.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.7/src/gl/tests' Making all in . make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[6]: Nothing to be done for 'all-am'. make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl' Making all in src make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src' make all-am make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/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 CC udp-serv.o CC gnutls-serv-options.lo CC benchmark-tls.o CC cli.o CC benchmark-cipher.o CC benchmark.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-common.o CC p11tool-certtool-common.o CC p11tool-certtool-extras.o CC p11tool-options.lo CC systemkey.o CC systemkey-tool-options.lo CC dumpcfg-cfg.o CC danetool-options.lo CCLD libcmd-cli-debug.la CCLD libcmd-serv.la 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); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CCLD libcmd-psk.la CCLD dumpcfg CCLD libcmd-ocsp.la CCLD libcmd-cli.la CCLD psktool CCLD gnutls-cli-debug CCLD gnutls-cli CCLD ocsptool CCLD gnutls-serv CCLD libcerttool-cfg.la copying selected object files to avoid basename conflicts... CCLD libcmd-certtool.la CCLD libcmd-p11tool.la CCLD libcmd-systemkey.la CCLD libcmd-danetool.la copying selected object files to avoid basename conflicts... copying selected object files to avoid basename conflicts... copying selected object files to avoid basename conflicts... copying selected object files to avoid basename conflicts... CCLD p11tool CCLD systemkey CCLD certtool 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:1739:1: | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1362 | 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 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2022 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:765:15: | 765 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 302 | 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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1362 | 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 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2404 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:986:9: | 986 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 262 | 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:1787:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1787 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1739:1: | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1582 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1503 | 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:1529:10: | 1529 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1739:16: | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1767 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1768 | goto yydefault; | 1769 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1770 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1780 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1787 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1820:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1820 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1739:1: | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1820 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1820:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1820 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1739:1: | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1503 | 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:1529:10: | 1529 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1739:16: | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1767 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1768 | goto yydefault; | 1769 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1770 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1774 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1820 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:677:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 677 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1923 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:677:9: | 677 | 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:682:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 682 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1932 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:682:9: | 682 | 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:682: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:682: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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1932 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:682:9: | 682 | 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:687:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 687 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1941 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:687:9: | 687 | 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:687: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:687:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1941 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:687:9: | 687 | 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:687: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:687: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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1941 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:687:9: | 687 | 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:696:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 696 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1950 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:696:9: | 696 | 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:701:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 701 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1959 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:701:9: | 701 | 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:701: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:701: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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1959 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:701:9: | 701 | 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:706:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 706 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1968 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:706:9: | 706 | 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:706: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:706:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1968 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:706:9: | 706 | 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:706: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:706: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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1968 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:706:9: | 706 | 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:720:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 720 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1977 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:720:15: | 720 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:759:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 759 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... |...... | 2013 | case 33: /* zone: tZONE relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:759:35: | 759 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:769:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 769 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... |...... | 2031 | case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:769:15: | 769 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:774:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 774 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... |...... | 2044 | case 37: /* zone: tZONE tDST */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:774:35: | 774 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:786:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 786 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... |...... | 2059 | case 39: /* day: tDAY ',' */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:786:36: | 786 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:790:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 790 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... |...... | 2068 | case 40: /* day: tORDINAL tDAY */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:790:37: | 790 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:796:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 796 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... |...... | 2078 | case 41: /* day: tUNUMBER tDAY */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:796:49: | 796 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:805:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 805 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2088 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:805:43: | 805 | 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:805: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:806:40: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 806 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... |...... | 2088 | case 42: /* date: tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:806:40: | 806 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:815:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 815 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2097 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:815:40: | 815 | 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:815: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:825:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 825 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2097 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:815:12: | 815 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 825 | 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:825:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 825 | 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:826:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2097 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:815:12: | 815 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 825 | pc->year = $1; | | ~ | | | | | (55) ...to here | 826 | 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:826:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 826 | 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:827:44: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 827 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2097 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:815:12: | 815 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... |...... | 825 | pc->year = $1; | | ~ | | | | | (55) ...to here | 826 | pc->month = $3.value; | 827 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:836:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2097 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:815:12: | 815 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 836 | 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:836:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | 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:837:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... |...... | 2097 | case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:815:12: | 815 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... |...... | 836 | pc->month = $1.value; | | | | | | | (55) ...to here | 837 | 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:837:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | 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:844:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 844 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2134 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:844:41: | 844 | 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:844: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:845:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 845 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... |...... | 2134 | case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:845:31: | 845 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:852:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 852 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2146 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:852:31: | 852 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:852: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:853:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 853 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... |...... | 2146 | case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:853:13: | 853 | 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:859:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 859 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... |...... | 2158 | case 46: /* date: tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:859:31: | 859 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:864:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 864 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2167 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:31: | 864 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:864: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:865:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 865 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... |...... | 2167 | case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:865:41: | 865 | 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:865: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:870:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... |...... | 2177 | case 48: /* date: tUNUMBER tMONTH */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:41: | 870 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:875:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2186 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:41: | 875 | 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:875: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:876:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 876 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... |...... | 2186 | case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:31: | 876 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:886:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2196 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:18: | 886 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886: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:887:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... |...... | 2196 | case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:13: | 887 | 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:894:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 894 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... |...... | 2207 | case 52: /* rel: relunit tAGO */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:894:15: | 894 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:903:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 903 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... |...... | 2225 | case 55: /* relunit: tORDINAL tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:903:69: | 903 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:905:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... |...... | 2231 | case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:81: | 905 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:909:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 909 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... |...... | 2243 | case 58: /* relunit: tORDINAL tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:909:70: | 909 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:911:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 911 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... |...... | 2249 | case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:911:82: | 911 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:916:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... |...... | 2261 | case 61: /* relunit: tORDINAL tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:13: | 916 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:919:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 919 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... |...... | 2268 | case 62: /* relunit: tUNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:919:13: | 919 | 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:923:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 923 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... |...... | 2281 | case 64: /* relunit: tORDINAL tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:923:69: | 923 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:925:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 925 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... |...... | 2287 | case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:925:81: | 925 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:929:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 929 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... |...... | 2299 | case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:929:72: | 929 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:931:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 931 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... |...... | 2305 | case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:931:84: | 931 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:935:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 935 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... |...... | 2317 | case 70: /* relunit: tORDINAL tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:935:72: | 935 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' here | gl/parse-datetime.y:937:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 937 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... |...... | 2323 | case 71: /* relunit: tUNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:937:84: | 937 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:939:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 939 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... |...... | 2329 | case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:939:82: | 939 | { $$ = 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:941:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 941 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... |...... | 2335 | case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:941:82: | 941 | { $$ = 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:949:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 949 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... |...... | 2347 | case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:949:81: | 949 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:951:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 951 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... |...... | 2353 | case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:951:82: | 951 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:954:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 954 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... |...... | 2359 | case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:954:13: | 954 | 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:956:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 956 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... |...... | 2366 | case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:956:81: | 956 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:958:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 958 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... |...... | 2372 | case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:958:84: | 958 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:960:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... |...... | 2378 | case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:84: | 960 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' here | gl/parse-datetime.y:974:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 974 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... |...... | 2390 | case 86: /* signed_seconds: tSNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:974:79: | 974 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:981:79: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 981 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... |...... | 2397 | case 88: /* unsigned_seconds: tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:981:79: | 981 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_215->textintval.value' here | gl/parse-datetime.y:994:9: warning: use of uninitialized value '_175->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 994 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... |...... | 2410 | case 90: /* hybrid: tUNUMBER relunit_snumber */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:994:9: | 994 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_175->textintval' here | gl/parse-datetime.y:1003:47: warning: use of uninitialized value 'yyvsp_215->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1003 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... |...... | 2427 | case 92: /* o_colon_minutes: ':' tUNUMBER */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1003:47: | 1003 | { $$ = $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:1739:1: | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1362 | 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 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... |...... | 2404 | case 89: /* number: tUNUMBER */ | | ~ | | | | | (52) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:986:9: | 986 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 262 | 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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (18) ...to here | | (19) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (20) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (22) ...to here | | (23) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1362 | 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 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (44) ...to here | | (45) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (46) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (48) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (34) ...to here | | (35) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (36) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (50) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... |...... | 2022 | case 34: /* zone: 'T' relunit_snumber */ | | ~ | | | | | (52) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (38) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (40) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:765:15: | 765 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 302 | 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:1787:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1787 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1739:1: | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1582 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (20) ...to here | | (21) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (22) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (24) ...to here | | (25) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1503 | 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:1529:10: | 1529 | if (c != '(') | | ^ | | | | | (31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1739:16: | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1767 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... | 1768 | goto yydefault; | 1769 | yyn = yytable[yyn]; | | ~ | | | | | (34) ...to here | 1770 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_240 > 0')... |...... | 1780 | if (yyerrstatus) | | ~ | | | | | (36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_208 == 0')... |...... | 1787 | *++yyvsp = yylval; | | ~ | | | | | (38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1820:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1820 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1739:1: | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (23) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (25) ...to here |...... | 1820 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1820:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1820 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1739:1: | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1503 | 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:1529:10: | 1529 | if (c != '(') | | ^ | | | | | (30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1739:16: | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1767 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... | 1768 | goto yydefault; | 1769 | yyn = yytable[yyn]; | | ~ | | | | | (33) ...to here | 1770 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_240 <= 0')... |...... | 1774 | yyn = -yyn; | | ~ | | | | | (35) ...to here |...... | 1820 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:677:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 677 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... |...... | 1923 | case 19: /* time: tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:677:9: | 677 | 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:682:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 682 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1932 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:682:9: | 682 | 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:682: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:682: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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... |...... | 1932 | case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:682:9: | 682 | 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:687:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 687 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1941 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:687:9: | 687 | 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:687: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:687:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1941 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:687:9: | 687 | 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:687: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:687: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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... |...... | 1941 | case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:687:9: | 687 | 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:696:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 696 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... |...... | 1950 | case 23: /* iso_8601_time: tUNUMBER zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:696:9: | 696 | 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:701:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 701 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1959 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:701:9: | 701 | 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:701: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:701: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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... |...... | 1959 | case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:701:9: | 701 | 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:706:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 706 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1968 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:706:9: | 706 | 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:706: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:706:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1968 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:706:9: | 706 | 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:706: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:706: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 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... |...... | 1968 | case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:706:9: | 706 | 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:720:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 720 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1518 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1739:16: | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (45) ...to here | | (46) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (47) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_235 == -91')... | 1731 | goto yydefault; | | ~ | | | | | (49) ...to here |...... | 1739 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1742 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_193 > 0')... |...... | 1748 | else if (yychar == YYerror) | | ~ | | | | | (35) ...to here | | (36) following 'true' branch (when 'yychar_193 == 256')... |...... | 1756 | goto yyerrlab1; | | ~ | | | | | (37) ...to here |...... | 1800 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_245 != 0')... | 1801 | goto yyerrlab; | 1802 | goto yyreduce; | | ~ | | | | | (51) ...to here |...... | 1824 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... |...... | 1977 | case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | | ~ | | | | | (53) ...to here |...... | 2537 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_387 != -91')... | 2538 | { | 2539 | yyn += YYSYMBOL_YYerror; | | ~ | | | | | (39) ...to here | 2540 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... | 2541 | { | 2542 | yyn = yytable[yyn]; | | ~ | | | | | (41) ...to here | 2543 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_389 > 0')... |...... | 2561 | *++yyvsp = yylval; | | ~ | | | | | (43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:720:15: | 720 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:759:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_215 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 759 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1739 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1821 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... |...... | 1827 | if (*p == '\0') | | ~ | | | | | (3) ...to here |...... | 1835 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... |...... | 1841 | pc.year.digits = 0; | | ~ | | | | | (5) ...to here |...... | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1577 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1590 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... |...... | 1597 | e->name = zone; | | ~ | | | | | (9) ...to here | <------+ | 'parse_datetime_body': events 10-13 | | 1870 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1874 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_172 != 4')... |...... | 1877 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ~~ | | || | | |(12) ...to here | | (13) following 'true' branch... | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1902 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1572:1: | 1572 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1603 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1651 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... |...... | 1715 | if (yystate == YYFINAL) | | ~ | | | | | (19) ...to here | | (20) following 'false' branch (when 'yystate_205 != 12')... |...... | 1718 | goto yybackup; | | ~ | | | | | (21) ...to here |...... | 1730 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_235 != -91')... |...... | 1736 | if (yychar == YYEMPTY) | | ~ | | | | | (23) ...to here | | (24) following 'true' branch (when 'yychar_192 == -2')... |...... | 1739 | yychar = yylex (&yylval, pc); | | ~ | | | | | (25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1416:1: | 1416 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1518 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1348 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1362 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... | 'lookup_word': event 31 | |lto1: