==> 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: | (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 '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 -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: 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 -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: 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 | cli.c: In function 'try_resume.isra': cli.c:1049:28: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 1049 | edata.size = size; | ^ cli.c:1040:24: note: 'size' was declared here 1040 | size_t size; | ^ In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y: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 -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: 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 -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: 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 -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: 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 -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: 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 '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 -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: 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 -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: 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 | make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src' Making all in tests make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/tests' Making all in . make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/tests' CC utils.lo CC seccomp.lo CC utils-adv.lo CC pkcs11/pkcs11-mock.lo CC pkcs11/pkcs11-mock2.lo CC pkcs11/pkcs11-mock3.lo utils.c: In function '_fail': utils.c:96:9: warning: ignoring return value of 'vasprintf' declared with attribute 'warn_unused_result' [-Wunused-result] 96 | vasprintf(&str, format, arg_ptr); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CCLD libpkcs11mock3.la CCLD libpkcs11mock2.la CCLD libutils.la CCLD libpkcs11mock1.la make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/tests' Making all in cert-tests make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/tests/cert-tests' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/tests/cert-tests' Making all in slow make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/tests/slow' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/tests/slow' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/tests' Making all in fuzz make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/fuzz' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/fuzz' Making all in doc/manpages make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc/manpages' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc/manpages' Making all in doc make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc' Making all in examples make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc/examples' CC ex-client-resume.o CC ex-alert.lo CC ex-pkcs12.lo CC ex-session-info.lo CC ex-x509-info.lo CC ex-verify.lo CC ex-client-x509-3.1.lo CC tcp.lo CC udp.lo CC ex-pkcs11-list.lo CC verify.lo CC ex-verify-ssh.lo CC ex-client-dtls.o CC ex-cert-select.o CC ex-client-x509.o CC ex-serv-dtls.o CC print-ciphersuites.o CC ex-serv-x509.o CXX ex_cxx-ex-cxx.o CC ex-client-anon.o CC ex-serv-anon.o CC ex-cert-select-pkcs11.o CC ex-client-psk.o CC ex-serv-psk.o CC ex-ocsp-client.o CC tlsproxy/buffer.o CC tlsproxy/crypto-gnutls.o CC tlsproxy/tlsproxy.o CCLD libexamples.la CCLD ex-client-dtls CCLD ex-client-resume CCLD ex-cert-select CCLD ex-client-x509 CCLD ex-serv-dtls CCLD print-ciphersuites CCLD ex-serv-x509 CCLD ex-client-anon CCLD ex-serv-anon CCLD ex-cert-select-pkcs11 CCLD ex-client-psk CCLD ex-serv-psk CCLD tlsproxy/tlsproxy CCLD ex-ocsp-client ex-serv-x509.c: In function 'main': ex-serv-x509.c:113:9: warning: 'listen' on possibly invalid file descriptor 'listen_sd_57' [-Wanalyzer-fd-use-without-check] 113 | listen(listen_sd, 1024); | ^ 'main': events 1-16 | | 60 | CHECK(gnutls_global_init()); | | ^ | | | | | (1) following 'true' branch... | 61 | | 62 | CHECK(gnutls_certificate_allocate_credentials(&x509_cred)); | | ~ | | | | | (2) ...to here | | (3) following 'true' branch... | 63 | | 64 | CHECK(gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE, | | ~ | | | | | (4) ...to here | | (5) following 'true' branch... |...... | 67 | CHECK(gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE, | | ~ | | | | | (6) ...to here | | (7) following 'true' branch... |...... | 76 | CHECK(gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE, KEYFILE, | | ~ | | | | | (8) ...to here | | (9) following 'true' branch... |...... | 79 | CHECK(gnutls_certificate_set_ocsp_status_request_file( | | ~ | | | | | (10) ...to here | | (11) following 'true' branch... |...... | 82 | CHECK(gnutls_priority_init(&priority_cache, NULL, NULL)); | | ~ | | | | | (12) ...to here | | (13) following 'true' branch... |...... | 95 | gnutls_certificate_set_known_dh_params(x509_cred, | | ~ | | | | | (14) ...to here |...... | 101 | listen_sd = socket(AF_INET, SOCK_STREAM, 0); | | ~ | | | | | (15) when 'socket' fails |...... | 113 | listen(listen_sd, 1024); | | ~ | | | | | (16) 'listen_sd_57' could be invalid | ex-ocsp-client.c: In function 'load_cert': ex-ocsp-client.c:182:19: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 182 | data.size = size; | ^ ex-ocsp-client.c:175:16: note: 'size' was declared here 175 | size_t size; | ^ CXXLD ex-cxx tlsproxy/tlsproxy.c: In function 'runlistener': tlsproxy/tlsproxy.c:89:22: warning: leak of file descriptor 'bindtoaddress (listenaddr)' [CWE-775] [-Wanalyzer-fd-leak] 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | ^ 'runlistener': events 1-2 | | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-14 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... |...... | 88 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (6) following 'true' branch (when 'rp_14' is non-NULL)... | | (5) ...to here | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (7) ...to here | | (8) socket created here | | (9) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (10) following 'true' branch (when 'fd_38 >= 0')... | 92 | int one = 1; | | ~ | | | | | (11) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (12) following 'false' branch... |...... | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (13) ...to here | | (14) following 'true' branch... | 'bindtoaddress': event 15 | |lto1: | (15): ...to here | 'bindtoaddress': events 16-21 | | 83 | return -1; | | ~ | | | | | (21) ...to here |...... | 104 | if (!rp) { | | ^ | | | | | (16) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 110 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (17) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~~ | | || | | |(18) stream socket marked as passive here via 'listen' | | |(19) when 'listen' succeeds | | (20) following 'false' branch... | <------+ | 'runlistener': events 22-23 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ ^ | | | | | | | (22) returning to 'runlistener' from 'bindtoaddress' | | (23) following 'false' branch... | 'runlistener': event 24 | |lto1: | (24): ...to here | 'bindtoaddress': event 25 | | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ^ | | | | | (25) 'bindtoaddress (listenaddr)' leaks here | In function 'bufGetCount', inlined from 'bufIsOverHWM' at tlsproxy/buffer.c:197:9: tlsproxy/buffer.c:207:14: warning: dereference of NULL 'b_4(D)' [CWE-476] [-Wanalyzer-null-dereference] 207 | if (b->empty) | ^ 'runlistener': events 1-2 | |tlsproxy/tlsproxy.c:214:12: | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-13 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... |...... | 88 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (6) following 'true' branch (when 'rp_14' is non-NULL)... | | (5) ...to here | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (7) ...to here | | (8) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (9) following 'true' branch (when 'fd_38 >= 0')... | 92 | int one = 1; | | ~ | | | | | (10) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (11) following 'false' branch... |...... | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (12) ...to here | | (13) following 'true' branch... | 'bindtoaddress': event 14 | |lto1: | (14): ...to here | 'bindtoaddress': events 15-19 | | 83 | return -1; | | ~ | | | | | (19) ...to here |...... | 104 | if (!rp) { | | ^ | | | | | (15) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 110 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (16) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~~ | | || | | |(17) when 'listen' succeeds | | (18) following 'false' branch... | <------+ | 'runlistener': events 20-21 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ ^ | | | | | | | (20) returning to 'runlistener' from 'bindtoaddress' | | (21) following 'false' branch... | 'runlistener': event 22 | |lto1: | (22): ...to here | 'runlistener': event 23 | | 228 | while (!rxsigquit) { | | ^ | | | | | (23) following 'true' branch... | 'runlistener': event 24 | |lto1: | (24): ...to here | 'runlistener': events 25-29 | | 237 | if (rxsigquit) | | ^ | | | | | (25) following 'false' branch... | 238 | break; | 239 | if (nofork < 2) { | | ~ ~ | | | | | | | (26) ...to here | | (27) following 'true' branch... | 240 | int ret = runproxy(fd); | | ~ | | | | | (28) ...to here | | (29) calling 'runproxy' from 'runlistener' | +--> 'runproxy': events 30-31 | | 178 | static int runproxy(int acceptfd) | | ^ | | | | | (30) entry to 'runproxy' |...... | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ | | | | | (31) calling 'connecttoaddress' from 'runproxy' | +--> 'connecttoaddress': events 32-43 | | 120 | static int connecttoaddress(char *addrport) | | ^ | | | | | (32) entry to 'connecttoaddress' |...... | 146 | if (s != 0) { | | ~ | | | | | (33) following 'false' branch... |...... | 153 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (35) following 'true' branch (when 'rp_14' is non-NULL)... | | (34) ...to here | 154 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (36) ...to here | | (37) when 'socket' succeeds | 155 | if (fd >= 0) { | | ~ | | | | | (38) following 'true' branch (when 'fd_42 >= 0')... | 156 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (39) ...to here | | (40) following 'true' branch... |...... | 162 | if (!rp) { | | ~ | | | | | (41) ...to here | | (42) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 168 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (43) ...to here | <------+ | 'runproxy': events 44-47 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ ^ | | | | | | | (44) returning to 'runproxy' from 'connecttoaddress' | | (45) following 'false' branch... |...... | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ~ | | | | | (46) ...to here | | (47) calling 'tlssession_new' from 'runproxy' | +--> 'tlssession_new': events 48-64 | |tlsproxy/crypto-gnutls.c:163:15: | 163 | tlssession_t *tlssession_new(int isserver, char *keyfile, char *certfile, | | ^ | | | | | (48) entry to 'tlssession_new' |...... | 172 | if (!s) | | ~ | | | | | (49) following 'false' branch (when 's_35' is non-NULL)... |...... | 175 | if (quitfn) | | ~ | | | | | (50) ...to here | | (51) following 'true' branch (when 'quitfn_36(D)' is non-NULL)... | 176 | s->quitfn = quitfn; | | ~ | | | | | (52) ...to here |...... | 180 | if (erroutfn) | | ~ | | | | | (53) following 'false' branch (when 'erroutfn_39(D)' is NULL)... |...... | 183 | s->erroutfn = stderrout; | | ~ | | | | | (54) ...to here |...... | 190 | if (gnutls_certificate_allocate_credentials(&s->creds) < 0) { | | ~ | | | | | (55) following 'false' branch... |...... | 195 | if (cacertfile != NULL) { | | ~ | | | | | (56) ...to here |...... | 232 | if (ret < 0) { | | ~ | | | | | (57) following 'false' branch (when 'ret_20 >= 0')... |...... | 238 | gnutls_session_set_ptr(s->session, (void *)s); | | ~ | | | | | (58) ...to here |...... | 251 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... |...... | 257 | ret = gnutls_credentials_set(s->session, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (60) ...to here | 258 | s->creds); | 259 | if (ret < 0) { | | ~ | | | | | (61) following 'false' branch... |...... | 265 | if (isserver) { | | ~ | | | | | (62) ...to here | | (63) following 'true' branch (when 'isserver_63(D) != 0')... | 266 | /* requests but does not check a client certificate */ | 267 | gnutls_certificate_server_set_request(s->session, | | ~ | | | | | (64) ...to here | <------+ | 'runproxy': events 65-70 | |tlsproxy/tlsproxy.c:187:33: | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ^ | | | | | (65) returning to 'runproxy' from 'tlssession_new' |...... | 190 | if (!session) { | | ~ | | | | | (66) following 'false' branch... |...... | 198 | if (server) | | ~~ | | || | | |(67) ...to here | | (68) following 'true' branch... | 199 | ret = tlssession_mainloop(acceptfd, connectfd, session); | | ~ | | | | | (69) ...to here | | (70) calling 'tlssession_mainloop' from 'runproxy' | +--> 'tlssession_mainloop': events 71-72 | |tlsproxy/crypto-gnutls.c:293:5: | 293 | int tlssession_mainloop(int cryptfd, int plainfd, tlssession_t *s) | | ^ | | | | | (71) entry to 'tlssession_mainloop' |...... | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (72) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 73-76 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (73) entry to 'bufNew' | 79 | { | 80 | buffer_t *b = calloc(1, sizeof(buffer_t)); | | ~ | | | | | (74) allocated here | 81 | if (!b) | | ~ | | | | | (75) assuming 'b_6' is NULL | | (76) following 'true' branch (when 'b_6' is NULL)... | 'bufNew': event 77 | |lto1: | (77): ...to here | <------+ | 'tlssession_mainloop': events 78-79 | |tlsproxy/crypto-gnutls.c:303:34: | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (78) returning to 'tlssession_mainloop' from 'bufNew' | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (79) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 80-82 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (80) entry to 'bufNew' |...... | 81 | if (!b) | | ~ | | | | | (81) following 'false' branch (when 'b_6' is non-NULL)... |...... | 84 | b->buf = calloc(1, size); | | ~ | | | | | (82) ...to here | <------+ | 'tlssession_mainloop': events 83-84 | |tlsproxy/crypto-gnutls.c:304:34: | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (83) returning to 'tlssession_mainloop' from 'bufNew' | 305 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~ | | | | | (84) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 85-86 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (85) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (86) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 87-91 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (87) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (88) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (89) ...to here |...... | 259 | switch (action) | | ~ | | | | | (90) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (91) ...to here | <------+ | 'socksetnonblock': events 92-97 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (92) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (93) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (94) ...to here | | (95) following 'false' branch (when 'nb_8(D) == 0')... | | (96) ...to here | | (97) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 98-102 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (98) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (99) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (100) ...to here |...... | 259 | switch (action) | | ~ | | | | | (101) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (102) ...to here | <------+ | 'socksetnonblock': event 103 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (103) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 104-109 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~^ | | || | | |(104) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (105) following 'false' branch... |...... | 312 | gnutls_transport_set_ptr(s->session, | | ~ | | | | | (106) ...to here |...... | 317 | if (ret < 0) { | | ~ | | | | | (107) following 'false' branch... |...... | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ~ | | | | | (108) ...to here | | (109) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 110-111 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (110) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (111) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 112-116 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (112) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (113) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (114) ...to here |...... | 259 | switch (action) | | ~ | | | | | (115) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (116) ...to here | <------+ | 'socksetnonblock': events 117-122 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (117) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (118) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (119) ...to here | | (120) following 'true' branch (when 'nb_8(D) != 0')... | | (121) ...to here | | (122) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 123-127 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (123) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (124) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (125) ...to here |...... | 259 | switch (action) | | ~ | | | | | (126) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (127) ...to here | <------+ | 'socksetnonblock': event 128 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (128) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 129-132 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ~^ | | || | | |(129) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (130) following 'false' branch... |...... | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ~ | | | | | (131) ...to here | | (132) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 133-134 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (133) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (134) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 135-139 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (135) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (136) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (137) ...to here |...... | 259 | switch (action) | | ~ | | | | | (138) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (139) ...to here | <------+ | 'socksetnonblock': events 140-145 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (140) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (141) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (142) ...to here | | (143) following 'true' branch (when 'nb_8(D) != 0')... | | (144) ...to here | | (145) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 146-150 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (146) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (147) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (148) ...to here |...... | 259 | switch (action) | | ~ | | | | | (149) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (150) ...to here | <------+ | 'socksetnonblock': event 151 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (151) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 152-156 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ~^ | | || | | |(152) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (153) following 'false' branch... |...... | 332 | maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1; | | ~ | | | | | (154) ...to here | 333 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ~ ~ | | | | | | | (156) inlined call to 'quit' from 'tlssession_mainloop' | | (155) following 'true' branch (when 'plainEOF_79 == 0')... | +--> 'quit': event 157 | | 72 | return s->quitfn(s->opaque); | | ^ | | | | | (157) ...to here | <------+ | 'tlssession_mainloop': event 158 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ^ | | | | | (158) following 'true' branch... | 'tlssession_mainloop': event 159 | |lto1: | (159): ...to here | 'tlssession_mainloop': events 160-162 | | 340 | FD_ZERO(&readfds); | | ^ | | | | | (160) following 'true' branch (when '__i_86 != 16')... | | (161) ...to here | | (162) following 'false' branch (when '__i_86 == 16')... | 'tlssession_mainloop': event 163 | |lto1: | (163): ...to here | 'tlssession_mainloop': events 164-172 | | 341 | FD_ZERO(&writefds); | | ^ | | | | | (164) following 'true' branch (when '__i_87 != 16')... | | (165) ...to here | | (166) following 'false' branch (when '__i_87 == 16')... | 342 | | 343 | size_t buffered = gnutls_record_check_pending(s->session); | | ~ | | | | | (167) ...to here |...... | 347 | if (plainEOF) { | | ~ | | | | | (168) following 'false' branch (when 'plainEOF_79 == 0')... |...... | 355 | if (!bufIsEmpty(cryptToPlain)) | | ~ ~ | | | | | | | (169) ...to here | | (170) following 'false' branch... | 356 | FD_SET(plainfd, &writefds); | 357 | if (!bufIsOverHWM(plainToCrypt)) | | ~ | | | | | (171) ...to here | | (172) calling 'bufIsOverHWM' from 'tlssession_mainloop' | +--> 'bufIsOverHWM': events 173-174 | |tlsproxy/buffer.c:195:5: | 195 | int bufIsOverHWM(buffer_t *b) | | ^ | | | | | (173) entry to 'bufIsOverHWM' | 196 | { | 197 | return bufGetCount(b) > b->hwm; | | ~ | | | | | (174) inlined call to 'bufGetCount' from 'bufIsOverHWM' | +--> 'bufGetCount': event 175 | | 207 | if (b->empty) | | ^ | | | | | (175) dereference of NULL 'b_4(D)' | tlsproxy/buffer.c: In function 'bufIsEmpty': tlsproxy/buffer.c:187:17: warning: dereference of NULL 'b_2(D)' [CWE-476] [-Wanalyzer-null-dereference] 187 | return b->empty; | ^ 'runlistener': events 1-2 | |tlsproxy/tlsproxy.c:214:12: | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-13 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... |...... | 88 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (6) following 'true' branch (when 'rp_14' is non-NULL)... | | (5) ...to here | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (7) ...to here | | (8) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (9) following 'true' branch (when 'fd_38 >= 0')... | 92 | int one = 1; | | ~ | | | | | (10) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (11) following 'false' branch... |...... | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (12) ...to here | | (13) following 'true' branch... | 'bindtoaddress': event 14 | |lto1: | (14): ...to here | 'bindtoaddress': events 15-19 | | 83 | return -1; | | ~ | | | | | (19) ...to here |...... | 104 | if (!rp) { | | ^ | | | | | (15) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 110 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (16) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~~ | | || | | |(17) when 'listen' succeeds | | (18) following 'false' branch... | <------+ | 'runlistener': events 20-21 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ ^ | | | | | | | (20) returning to 'runlistener' from 'bindtoaddress' | | (21) following 'false' branch... | 'runlistener': event 22 | |lto1: | (22): ...to here | 'runlistener': event 23 | | 228 | while (!rxsigquit) { | | ^ | | | | | (23) following 'true' branch... | 'runlistener': event 24 | |lto1: | (24): ...to here | 'runlistener': events 25-29 | | 237 | if (rxsigquit) | | ^ | | | | | (25) following 'false' branch... | 238 | break; | 239 | if (nofork < 2) { | | ~ ~ | | | | | | | (26) ...to here | | (27) following 'true' branch... | 240 | int ret = runproxy(fd); | | ~ | | | | | (28) ...to here | | (29) calling 'runproxy' from 'runlistener' | +--> 'runproxy': events 30-31 | | 178 | static int runproxy(int acceptfd) | | ^ | | | | | (30) entry to 'runproxy' |...... | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ | | | | | (31) calling 'connecttoaddress' from 'runproxy' | +--> 'connecttoaddress': events 32-43 | | 120 | static int connecttoaddress(char *addrport) | | ^ | | | | | (32) entry to 'connecttoaddress' |...... | 146 | if (s != 0) { | | ~ | | | | | (33) following 'false' branch... |...... | 153 | for (rp = result; rp != NULL; rp = rp->ai_next) { | | ~ ~ | | | | | | | (35) following 'true' branch (when 'rp_14' is non-NULL)... | | (34) ...to here | 154 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ~ | | | | | (36) ...to here | | (37) when 'socket' succeeds | 155 | if (fd >= 0) { | | ~ | | | | | (38) following 'true' branch (when 'fd_42 >= 0')... | 156 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ~ ~ | | | | | | | (39) ...to here | | (40) following 'true' branch... |...... | 162 | if (!rp) { | | ~ | | | | | (41) ...to here | | (42) following 'false' branch (when 'rp_28' is non-NULL)... |...... | 168 | freeaddrinfo(result); /* No longer needed */ | | ~ | | | | | (43) ...to here | <------+ | 'runproxy': events 44-47 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ ^ | | | | | | | (44) returning to 'runproxy' from 'connecttoaddress' | | (45) following 'false' branch... |...... | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ~ | | | | | (46) ...to here | | (47) calling 'tlssession_new' from 'runproxy' | +--> 'tlssession_new': events 48-64 | |tlsproxy/crypto-gnutls.c:163:15: | 163 | tlssession_t *tlssession_new(int isserver, char *keyfile, char *certfile, | | ^ | | | | | (48) entry to 'tlssession_new' |...... | 172 | if (!s) | | ~ | | | | | (49) following 'false' branch (when 's_35' is non-NULL)... |...... | 175 | if (quitfn) | | ~ | | | | | (50) ...to here | | (51) following 'true' branch (when 'quitfn_36(D)' is non-NULL)... | 176 | s->quitfn = quitfn; | | ~ | | | | | (52) ...to here |...... | 180 | if (erroutfn) | | ~ | | | | | (53) following 'false' branch (when 'erroutfn_39(D)' is NULL)... |...... | 183 | s->erroutfn = stderrout; | | ~ | | | | | (54) ...to here |...... | 190 | if (gnutls_certificate_allocate_credentials(&s->creds) < 0) { | | ~ | | | | | (55) following 'false' branch... |...... | 195 | if (cacertfile != NULL) { | | ~ | | | | | (56) ...to here |...... | 232 | if (ret < 0) { | | ~ | | | | | (57) following 'false' branch (when 'ret_20 >= 0')... |...... | 238 | gnutls_session_set_ptr(s->session, (void *)s); | | ~ | | | | | (58) ...to here |...... | 251 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... |...... | 257 | ret = gnutls_credentials_set(s->session, GNUTLS_CRD_CERTIFICATE, | | ~ | | | | | (60) ...to here | 258 | s->creds); | 259 | if (ret < 0) { | | ~ | | | | | (61) following 'false' branch... |...... | 265 | if (isserver) { | | ~ | | | | | (62) ...to here | | (63) following 'true' branch (when 'isserver_63(D) != 0')... | 266 | /* requests but does not check a client certificate */ | 267 | gnutls_certificate_server_set_request(s->session, | | ~ | | | | | (64) ...to here | <------+ | 'runproxy': events 65-70 | |tlsproxy/tlsproxy.c:187:33: | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ^ | | | | | (65) returning to 'runproxy' from 'tlssession_new' |...... | 190 | if (!session) { | | ~ | | | | | (66) following 'false' branch... |...... | 198 | if (server) | | ~~ | | || | | |(67) ...to here | | (68) following 'true' branch... | 199 | ret = tlssession_mainloop(acceptfd, connectfd, session); | | ~ | | | | | (69) ...to here | | (70) calling 'tlssession_mainloop' from 'runproxy' | +--> 'tlssession_mainloop': events 71-72 | |tlsproxy/crypto-gnutls.c:293:5: | 293 | int tlssession_mainloop(int cryptfd, int plainfd, tlssession_t *s) | | ^ | | | | | (71) entry to 'tlssession_mainloop' |...... | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (72) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 73-74 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (73) entry to 'bufNew' |...... | 81 | if (!b) | | ~ | | | | | (74) following 'true' branch (when 'b_6' is NULL)... | 'bufNew': event 75 | |lto1: | (75): ...to here | <------+ | 'tlssession_mainloop': events 76-77 | |tlsproxy/crypto-gnutls.c:303:34: | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (76) returning to 'tlssession_mainloop' from 'bufNew' | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (77) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 78-81 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (78) entry to 'bufNew' | 79 | { | 80 | buffer_t *b = calloc(1, sizeof(buffer_t)); | | ~ | | | | | (79) allocated here | 81 | if (!b) | | ~ | | | | | (80) assuming 'b_6' is NULL | | (81) following 'true' branch (when 'b_6' is NULL)... | 'bufNew': event 82 | |lto1: | (82): ...to here | <------+ | 'tlssession_mainloop': events 83-84 | |tlsproxy/crypto-gnutls.c:304:34: | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (83) returning to 'tlssession_mainloop' from 'bufNew' | 305 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~ | | | | | (84) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 85-86 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (85) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (86) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 87-91 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (87) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (88) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (89) ...to here |...... | 259 | switch (action) | | ~ | | | | | (90) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (91) ...to here | <------+ | 'socksetnonblock': events 92-97 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (92) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (93) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (94) ...to here | | (95) following 'false' branch (when 'nb_8(D) == 0')... | | (96) ...to here | | (97) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 98-102 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (98) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (99) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (100) ...to here |...... | 259 | switch (action) | | ~ | | | | | (101) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (102) ...to here | <------+ | 'socksetnonblock': event 103 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (103) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 104-109 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~^ | | || | | |(104) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (105) following 'false' branch... |...... | 312 | gnutls_transport_set_ptr(s->session, | | ~ | | | | | (106) ...to here |...... | 317 | if (ret < 0) { | | ~ | | | | | (107) following 'false' branch... |...... | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ~ | | | | | (108) ...to here | | (109) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 110-111 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (110) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (111) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 112-116 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (112) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (113) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (114) ...to here |...... | 259 | switch (action) | | ~ | | | | | (115) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (116) ...to here | <------+ | 'socksetnonblock': events 117-122 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (117) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (118) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (119) ...to here | | (120) following 'true' branch (when 'nb_8(D) != 0')... | | (121) ...to here | | (122) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 123-127 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (123) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (124) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (125) ...to here |...... | 259 | switch (action) | | ~ | | | | | (126) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (127) ...to here | <------+ | 'socksetnonblock': event 128 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (128) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 129-132 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ~^ | | || | | |(129) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (130) following 'false' branch... |...... | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ~ | | | | | (131) ...to here | | (132) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 133-134 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (133) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (134) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 135-139 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (135) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (136) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (137) ...to here |...... | 259 | switch (action) | | ~ | | | | | (138) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... |...... | 286 | case F_GETFD: | | ~ | | | | | (139) ...to here | <------+ | 'socksetnonblock': events 140-145 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (140) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (141) following 'false' branch... | 109 | return -1; | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ~ | | | | | (142) ...to here | | (143) following 'true' branch (when 'nb_8(D) != 0')... | | (144) ...to here | | (145) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 146-150 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (146) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (147) following 'default:' branch... |...... | 256 | default: | | ~ | | | | | (148) ...to here |...... | 259 | switch (action) | | ~ | | | | | (149) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... |...... | 332 | case F_ADD_SEALS: | | ~ | | | | | (150) ...to here | <------+ | 'socksetnonblock': event 151 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (151) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': events 152-156 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ~^ | | || | | |(152) returning to 'tlssession_mainloop' from 'socksetnonblock' | | (153) following 'false' branch... |...... | 332 | maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1; | | ~ | | | | | (154) ...to here | 333 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ~ ~ | | | | | | | (156) inlined call to 'quit' from 'tlssession_mainloop' | | (155) following 'true' branch (when 'plainEOF_79 == 0')... | +--> 'quit': event 157 | | 72 | return s->quitfn(s->opaque); | | ^ | | | | | (157) ...to here | <------+ | 'tlssession_mainloop': event 158 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ^ | | | | | (158) following 'true' branch... | 'tlssession_mainloop': event 159 | |lto1: | (159): ...to here | 'tlssession_mainloop': events 160-166 | | 340 | FD_ZERO(&readfds); | | ^ | | | | | (160) following 'true' branch (when '__i_86 != 16')... | | (161) ...to here | 341 | FD_ZERO(&writefds); | | ~ | | | | | (162) following 'true' branch (when '__i_87 != 16')... | | (163) ...to here |...... | 347 | if (plainEOF) { | | ~ | | | | | (164) following 'false' branch (when 'plainEOF_79 == 0')... |...... | 355 | if (!bufIsEmpty(cryptToPlain)) | | ~ | | | | | (165) ...to here | | (166) calling 'bufIsEmpty' from 'tlssession_mainloop' | +--> 'bufIsEmpty': events 167-168 | |tlsproxy/buffer.c:185:5: | 185 | int bufIsEmpty(buffer_t *b) | | ^ | | | | | (167) entry to 'bufIsEmpty' | 186 | { | 187 | return b->empty; | | ~ | | | | | (168) dereference of NULL 'b_2(D)' | make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc/examples' Making all in scripts make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc/scripts' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc/scripts' Making all in credentials make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc/credentials' Making all in srp make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc/credentials/srp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc/credentials/srp' Making all in x509 make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc/credentials/x509' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc/credentials/x509' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc/credentials' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc/credentials' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc/credentials' Making all in latex make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc/latex' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc/latex' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/doc' make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.7' ==> Starting check()... Making check in gl make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.7/gl' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/gl' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/gl' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/gl' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/gl' Making check in lib make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib' Making check in includes make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/includes' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/includes' Making check in x509 make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/x509' make check-am make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/x509' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/x509' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/x509' Making check in auth make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/auth' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/auth' Making check in ext make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/ext' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/ext' Making check in algorithms make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/algorithms' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/algorithms' Making check in extras make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/extras' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/extras' Making check in accelerated make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/accelerated' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/accelerated' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/accelerated' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/accelerated' Making check in nettle make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib/nettle' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib/nettle' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/lib' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/lib' Making check in extra make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.7/extra' Making check in includes make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/extra/includes' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/extra/includes' make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/extra' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/extra' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/extra' Making check in po make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.7/po' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/po' Making check in src/gl make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl' Making check in . make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl' Making check in tests make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make check-recursive make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' Making check in . make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' ## ---------------------------------------------------------------------- ## ## ---------------------------- Gnulib tests ---------------------------- ## ## Please report test failures in this directory to . ## ## ---------------------------------------------------------------------- ## make test-accept test-alignasof test-alloca-opt test-arpa_inet test-array_list test-assert test-binary-io test-bind test-bitrotate test-byteswap test-c-ctype test-c-strcasecmp test-c-strncasecmp test-calloc-gnu test-canonicalize-lgpl test-cloexec test-close test-connect test-ctype test-dup2 test-environ test-errno test-error test-explicit_bzero test-fcntl-h test-fcntl test-fdopen test-fgetc test-float test-fopen-gnu test-fopen test-fpending test-fputc test-fread test-free test-fseek test-fseeko test-fseeko3 test-fseeko4 test-fstat test-ftell test-ftell3 test-ftello test-ftello3 test-ftello4 test-ftruncate test-func test-fwrite test-getaddrinfo test-getcwd-lgpl test-getdelim test-getdtablesize test-getline test-getpeername test-getprogname test-gettimeofday test-scratch-buffer test-hash test-ignore-value test-inet_ntop test-inet_pton test-intprops test-inttostr test-inttypes test-ioctl test-isblank test-isnand-nolibm test-isnanf-nolibm test-isnanl-nolibm test-langinfo test-largefile test-limits-h test-linked_list test-linkedhash_list test-listen test-locale test-localename test-rwlock1 test-lock test-once1 test-once2 test-lseek test-lstat test-malloc-gnu test-malloca test-math test-memchr test-memset_explicit test-nanosleep test-netdb test-netinet_in test-nstrftime test-open test-parse-datetime test-pathmax test-perror test-perror2 test-pipe test-pselect test-pthread-cond test-pthread test-pthread-mutex test-pthread-once1 test-pthread-once2 test-pthread-rwlock test-pthread-thread test-pthread_sigmask1 test-pthread_sigmask2 test-putenv test-raise test-random test-random-mt test-random_r test-rawmemchr test-read-file test-readlink test-realloc-gnu test-reallocarray test-recv test-recvfrom test-sched test-select test-select-fd test-select-stdin test-send test-sendto test-setenv test-setlocale_null test-setlocale_null-mt-one test-setlocale_null-mt-all test-setlocale_null-unlocked test-setlocale1 test-setlocale2 test-setsockopt test-shutdown test-signal-h test-signbit test-sigprocmask test-sleep test-snprintf test-sockets test-stat test-stat-time test-stdbool test-stdckdint test-stddef test-stdint test-stdio test-stdlib test-strerror test-strerror_r test-string test-strings test-strnlen test-strtoll test-strverscmp test-symlink test-sys_ioctl test-sys_select test-sys_socket test-sys_stat test-sys_time test-sys_types test-sys_uio test-thread_self test-thread_create test-time-h test-time test-gmtime_r test-gmtime_r-mt test-localtime_r test-localtime_r-mt test-timespec test-tls test-unistd test-unsetenv test-usleep test-vasnprintf test-vasprintf test-verify test-vsnprintf test-wchar test-xalloc-die libtests.a make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' CC test-accept.o CC gl_array_list.o CC binary-io.o CC dtotimespec.o CC hash-pjw.o CC imaxtostr.o CC inttostr.o CC offtostr.o CC uinttostr.o CC umaxtostr.o CC localename.o CC localename-unsafe.o CC localename-table.o CC math.o CC nanosleep.o CC ioctl.o CC same-inode.o CC setlocale_null.o CC time.o CC timespec-add.o CC timespec-sub.o CC vma-iter.o CC strerror_r.o CC test-alignasof.o CC test-alloca-opt.o CC test-arpa_inet.o CC test-array_list.o CC test-assert.o CC test-binary-io.o CC test-bind.o CC test-bitrotate.o CC test-byteswap.o CC test-c-ctype.o CC test-c-strcasecmp.o CC test-c-strncasecmp.o CC test-calloc-gnu.o CC test-canonicalize-lgpl.o CC test-cloexec.o CC test-close.o CC test-connect.o CC test-ctype.o CC test-dup2.o CC test-environ.o CC test-errno.o CC test-error.o CC test-explicit_bzero.o CC test-fcntl-h.o CC test-fcntl.o CC test-fdopen.o CC test-fgetc.o CC test-float.o CC test-fopen-gnu.o CC test-fopen.o CC test-fpending.o CC test-fputc.o CC test-fread.o CC test-free.o CC test-fseek.o CC test-fseeko.o CC test-fseeko3.o CC test-fseeko4.o CC test-fstat.o CC test-ftell.o CC test-ftell3.o CC test-ftello.o CC test-ftello3.o CC test-ftello4.o CC test-ftruncate.o CC test-func.o CC test-fwrite.o CC test-getaddrinfo.o CC test-getcwd-lgpl.o CC test-getdelim.o CC test-getdtablesize.o CC test-getline.o CC test-getpeername.o CC test-getprogname.o CC test-gettimeofday.o CC test-scratch-buffer.o CC test-hash.o CC test-ignore-value.o CC test-inet_ntop.o CC test-inet_pton.o CC test-intprops.o CC test-inttostr.o CC test-inttypes.o CC test-ioctl.o CC test-isblank.o CC test-isnand-nolibm.o CC test-isnanf-nolibm.o CC test-isnanl-nolibm.o CC test-langinfo.o CC test-largefile.o CC test-limits-h.o CC test-linked_list.o CC test-linkedhash_list.o CC test-listen.o CC test-locale.o CC test-localename.o CC test-rwlock1.o CC test-lock.o CC test-once.o CC test-lseek.o CC test-lstat.o CC test-malloc-gnu.o CC test-malloca.o CC test-math.o CC test-memchr.o CC test-memset_explicit.o CC test-nanosleep.o CC test-netdb.o CC test-netinet_in.o CC test-nstrftime.o CC test-open.o CC test-parse-datetime.o CC test-pathmax.o CC test-perror.o CC test-perror2.o CC test-pipe.o CC test-pselect.o CC test-pthread-cond.o CC test-pthread.o CC test-pthread-mutex.o CC test-pthread-once1.o CC test-pthread-once2.o CC test-pthread-rwlock.o CC test-pthread-thread.o CC test-pthread_sigmask1.o CC test-pthread_sigmask2.o CC test-putenv.o CC test-raise.o CC test-random.o CC test-random-mt.o CC test-random_r.o CC test-rawmemchr.o CC test-read-file.o CC test-readlink.o CC test-realloc-gnu.o CC test-reallocarray.o CC test-recv.o CC test-recvfrom.o CC test-sched.o CC test-select.o CC test-select-fd.o CC test-select-stdin.o CC test-send.o CC test-sendto.o CC test-setenv.o CC test-setlocale_null.o CC test-setlocale_null-mt-one.o CC test-setlocale_null-mt-all.o CC test-setlocale_null-unlocked.o CC test-setlocale1.o CC test-setlocale2.o CC test-setsockopt.o CC test-shutdown.o CC test-signbit.o CC test-signal-h.o CC test-sigprocmask.o CC test-sleep.o CC test-snprintf.o CC test-sockets.o CC test-stat.o CC test-stat-time.o CC test-stdbool.o CC test-stdckdint.o CC test-stddef.o CC test-stdint.o CC test-stdio.o CC test-stdlib.o CC test-strerror.o CC test-strerror_r.o CC test-string.o CC test-strings.o CC test-strnlen.o CC test-strtoll.o CC test-strverscmp.o CC test-symlink.o CC test-sys_ioctl.o CC test-sys_select.o CC test-sys_socket.o CC test-sys_stat.o CC test-sys_time.o CC test-sys_types.o CC test-sys_uio.o CC test-thread_self.o CC test-thread_create.o CC test-time-h.o CC test-time.o CC test-gmtime_r.o CC test-gmtime_r-mt.o CC test-localtime_r.o CC test-localtime_r-mt.o CC test-timespec.o CC test-tls.o CC test-unistd.o CC test-unsetenv.o CC test-usleep.o CC test-vasnprintf.o CC test-vasprintf.o CC test-verify.o CC test-vsnprintf.o CC test-wchar.o CC test-xalloc-die.o CC glthread/thread.o AR libtests.a CCLD test-accept CCLD test-alignasof CCLD test-alloca-opt CCLD test-arpa_inet CCLD test-array_list CCLD test-assert CCLD test-binary-io CCLD test-bind CCLD test-bitrotate CCLD test-byteswap CCLD test-c-ctype CCLD test-c-strcasecmp CCLD test-c-strncasecmp CCLD test-calloc-gnu CCLD test-canonicalize-lgpl CCLD test-cloexec CCLD test-close CCLD test-connect CCLD test-ctype CCLD test-dup2 CCLD test-environ CCLD test-errno CCLD test-error CCLD test-explicit_bzero CCLD test-fcntl-h CCLD test-fcntl CCLD test-fdopen CCLD test-fgetc CCLD test-float CCLD test-fopen-gnu CCLD test-fopen CCLD test-fpending CCLD test-fputc CCLD test-fread CCLD test-free CCLD test-fseek CCLD test-fseeko CCLD test-fseeko3 CCLD test-fseeko4 CCLD test-fstat CCLD test-ftell CCLD test-ftell3 CCLD test-ftello CCLD test-ftello3 CCLD test-ftello4 CCLD test-ftruncate CCLD test-func CCLD test-fwrite CCLD test-getcwd-lgpl CCLD test-getaddrinfo CCLD test-getdelim CCLD test-getdtablesize CCLD test-getline CCLD test-getpeername CCLD test-getprogname CCLD test-gettimeofday CCLD test-scratch-buffer CCLD test-hash CCLD test-ignore-value CCLD test-inet_ntop CCLD test-inet_pton CCLD test-intprops CCLD test-inttostr CCLD test-inttypes CCLD test-ioctl CCLD test-isblank CCLD test-isnand-nolibm CCLD test-isnanf-nolibm CCLD test-isnanl-nolibm CCLD test-langinfo CCLD test-largefile CCLD test-limits-h CCLD test-linked_list CCLD test-linkedhash_list CCLD test-listen CCLD test-locale CCLD test-localename CCLD test-rwlock1 CCLD test-lock CCLD test-once1 CCLD test-once2 CCLD test-lseek CCLD test-lstat CCLD test-malloc-gnu CCLD test-malloca CCLD test-math CCLD test-memchr CCLD test-memset_explicit CCLD test-nanosleep CCLD test-netdb CCLD test-netinet_in CCLD test-nstrftime CCLD test-open CCLD test-parse-datetime CCLD test-pathmax CCLD test-perror CCLD test-perror2 CCLD test-pipe CCLD test-pselect CCLD test-pthread-cond CCLD test-pthread CCLD test-pthread-mutex CCLD test-pthread-once1 CCLD test-pthread-once2 CCLD test-pthread-rwlock CCLD test-pthread-thread CCLD test-pthread_sigmask1 CCLD test-pthread_sigmask2 CCLD test-putenv CCLD test-raise CCLD test-random CCLD test-random-mt CCLD test-random_r CCLD test-rawmemchr CCLD test-read-file CCLD test-readlink CCLD test-realloc-gnu CCLD test-reallocarray CCLD test-recv CCLD test-recvfrom CCLD test-sched CCLD test-select CCLD test-select-fd CCLD test-select-stdin CCLD test-send CCLD test-sendto CCLD test-setenv CCLD test-setlocale_null CCLD test-setlocale_null-mt-one CCLD test-setlocale_null-mt-all CCLD test-setlocale_null-unlocked CCLD test-setlocale1 CCLD test-setlocale2 CCLD test-setsockopt CCLD test-shutdown CCLD test-signal-h CCLD test-signbit CCLD test-sigprocmask CCLD test-sleep CCLD test-snprintf CCLD test-sockets CCLD test-stat CCLD test-stat-time CCLD test-stdbool CCLD test-stdckdint CCLD test-stddef CCLD test-stdint CCLD test-stdio CCLD test-stdlib CCLD test-strerror CCLD test-strerror_r CCLD test-string CCLD test-strings CCLD test-strnlen CCLD test-strtoll CCLD test-strverscmp CCLD test-symlink CCLD test-sys_ioctl CCLD test-sys_select CCLD test-sys_socket CCLD test-sys_stat CCLD test-sys_time CCLD test-sys_types CCLD test-sys_uio CCLD test-thread_self CCLD test-thread_create CCLD test-time-h CCLD test-time CCLD test-gmtime_r CCLD test-gmtime_r-mt CCLD test-localtime_r CCLD test-localtime_r-mt CCLD test-timespec CCLD test-tls CCLD test-unistd CCLD test-unsetenv CCLD test-usleep CCLD test-vasnprintf CCLD test-vasprintf CCLD test-verify make[6]: 'libtests.a' is up to date. CCLD test-vsnprintf CCLD test-wchar CCLD test-xalloc-die make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make check-TESTS make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[7]: Entering directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' PASS: test-accept PASS: test-alignasof PASS: test-arpa_inet PASS: test-assert PASS: test-bind PASS: test-array_list PASS: test-bitrotate PASS: test-byteswap PASS: test-calloc-gnu PASS: test-binary-io.sh PASS: test-c-strcase.sh PASS: test-cloexec PASS: test-close PASS: test-c-ctype PASS: test-connect PASS: test-canonicalize-lgpl PASS: test-ctype PASS: test-dup2 PASS: test-environ PASS: test-errno PASS: test-explicit_bzero PASS: test-fcntl-h PASS: test-fcntl PASS: test-fdopen PASS: test-fgetc PASS: test-float PASS: test-fopen-gnu PASS: test-fopen PASS: test-fputc PASS: test-fread PASS: test-fpending.sh PASS: test-fseek2.sh PASS: test-alloca-opt PASS: test-fseek.sh PASS: test-fseeko2.sh PASS: test-fstat PASS: test-fseeko.sh PASS: test-fseeko4.sh PASS: test-fseeko3.sh PASS: test-ftell3 PASS: test-ftell2.sh PASS: test-ftello3 PASS: test-ftello2.sh PASS: test-ftello.sh PASS: test-ftell.sh PASS: test-ftello4.sh PASS: test-func PASS: test-ftruncate.sh PASS: test-fwrite PASS: test-getcwd-lgpl PASS: test-getdtablesize PASS: test-getdelim PASS: test-getline PASS: test-error.sh PASS: test-getpeername PASS: test-getprogname PASS: test-gettimeofday PASS: test-scratch-buffer PASS: test-ignore-value PASS: test-inet_ntop PASS: test-inet_pton PASS: test-intprops PASS: test-inttostr PASS: test-inttypes PASS: test-ioctl PASS: test-isblank PASS: test-isnand-nolibm PASS: test-isnanf-nolibm PASS: test-isnanl-nolibm PASS: test-langinfo PASS: test-largefile PASS: test-limits-h PASS: test-linked_list PASS: test-listen PASS: test-locale PASS: test-linkedhash_list PASS: test-localename PASS: test-once1 PASS: test-once2 PASS: test-malloc-gnu PASS: test-lstat PASS: test-math PASS: test-memset_explicit PASS: test-lseek.sh PASS: test-netinet_in PASS: test-netdb PASS: test-malloca SKIP: test-nstrftime-2.sh PASS: test-nstrftime-1.sh PASS: test-open PASS: test-parse-datetime PASS: test-pathmax PASS: test-perror2 PASS: test-pipe PASS: test-pselect PASS: test-pthread PASS: test-pthread-once1 PASS: test-pthread-thread PASS: test-putenv PASS: test-raise PASS: test-random PASS: test-random_r PASS: test-rawmemchr PASS: test-read-file PASS: test-realloc-gnu PASS: test-reallocarray PASS: test-recv PASS: test-rwlock1 PASS: test-recvfrom PASS: test-readlink PASS: test-sched PASS: test-select PASS: test-send PASS: test-setenv PASS: test-setlocale_null SKIP: test-setlocale_null-mt-one PASS: test-setlocale_null-unlocked PASS: test-sendto SKIP: test-setlocale_null-mt-all PASS: test-setsockopt PASS: test-shutdown PASS: test-signal-h PASS: test-signbit SKIP: test-setlocale1.sh PASS: test-perror.sh PASS: test-snprintf PASS: test-stat PASS: test-stdckdint PASS: test-stdbool PASS: test-stat-time PASS: test-stddef PASS: test-stdint PASS: test-stdio PASS: test-stdlib PASS: test-strerror PASS: test-sockets PASS: test-strerror_r PASS: test-strings PASS: test-string PASS: test-setlocale2.sh PASS: test-strtoll PASS: test-strverscmp PASS: test-sys_ioctl PASS: test-sys_select PASS: test-strnlen PASS: test-symlink PASS: test-sys_socket PASS: test-sys_stat PASS: test-sys_time PASS: test-sys_types PASS: test-sys_uio PASS: test-thread_self PASS: test-thread_create PASS: test-time-h PASS: test-gmtime_r PASS: test-localtime_r PASS: test-timespec PASS: test-unistd PASS: test-unsetenv PASS: test-vasnprintf PASS: test-vasprintf PASS: test-verify PASS: test-wchar PASS: test-vsnprintf PASS: test-init.sh PASS: test-xalloc-die.sh PASS: test-random-mt PASS: test-time PASS: test-free PASS: test-hash PASS: test-nanosleep PASS: test-memchr PASS: test-select-out.sh PASS: test-gmtime_r-mt PASS: test-localtime_r-mt PASS: test-usleep PASS: test-getaddrinfo PASS: test-pthread_sigmask2 PASS: test-pthread_sigmask1 PASS: test-sigprocmask PASS: test-select-in.sh PASS: test-sleep PASS: test-verify.sh PASS: test-pthread-cond PASS: test-pthread-mutex PASS: test-pthread-once2 PASS: test-tls PASS: test-lock ../../../build-aux/test-driver: line 112: 60036 Alarm clock "$@" >> "$log_file" 2>&1 FAIL: test-pthread-rwlock ============================================================================ Testsuite summary for GnuTLS 3.8.7 ============================================================================ # TOTAL: 189 # PASS: 184 # SKIP: 4 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================ See src/gl/tests/test-suite.log Please report to bugs@gnutls.org ============================================================================ make[7]: *** [Makefile:5982: test-suite.log] Error 1 make[7]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[6]: *** [Makefile:6090: check-TESTS] Error 2 make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[5]: *** [Makefile:7504: check-am] Error 2 make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[4]: *** [Makefile:5874: check-recursive] Error 1 make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[3]: *** [Makefile:7506: check] Error 2 make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl/tests' make[2]: *** [Makefile:4647: check-recursive] Error 1 make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl' make[1]: *** [Makefile:4798: check] Error 2 make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.7/src/gl' make: *** [Makefile:2886: check-recursive] Error 1 ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/root38/build [?25h[?25hreceiving incremental file list gnutls-3.8.7-1-riscv64-build.log gnutls-3.8.7-1-riscv64-check.log gnutls-3.8.7-1-riscv64-prepare.log sent 81 bytes received 141,787 bytes 94,578.67 bytes/sec total size is 5,469,326 speedup is 38.55