==> Synchronizing chroot copy [/home/alhp/workspace/chroot/root] -> [build_64ef0b75-ff68-4b65-b24a-0925cf3e1623]...done ==> Making package: gnutls 3.8.10-1.1 (Sat Jul 12 10:43:32 2025) ==> Retrieving sources... -> Downloading gnutls-3.8.10.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 27 6747k 27 1888k 0 0 1621k 0 0:00:04 0:00:01 0:00:03 1620k 100 6747k 100 6747k 0 0 3188k 0 0:00:02 0:00:02 --:--:-- 3188k -> Downloading gnutls-3.8.10.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 100 566 100 566 0 0 3494 0 --:--:-- --:--:-- --:--:-- 3515 -> Found config -> Found gnutls-ktls_disable_keyupdate_test.patch -> Found gnutls-3.8.10-tests-ktls.patch -> Found 1980.patch ==> Validating source files with sha256sums... gnutls-3.8.10.tar.xz ... Passed gnutls-3.8.10.tar.xz.sig ... Skipped config ... Passed gnutls-ktls_disable_keyupdate_test.patch ... Passed gnutls-3.8.10-tests-ktls.patch ... Passed 1980.patch ... Passed ==> Verifying source file signatures with gpg... gnutls-3.8.10.tar.xz ... Passed ==> Making package: gnutls 3.8.10-1.1 (Sat Jul 12 08:43:37 2025) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (12) New Version Net Change extra/docbook-xml 4.5-11 1.96 MiB extra/docbook-xsl 1.79.2-9 26.32 MiB core/efivar 39-1 0.53 MiB core/glib2-docs 2.84.3-1 65.90 MiB extra/libxslt 1.1.43-2 0.78 MiB core/mpdecimal 4.0.1-1 0.33 MiB core/python 3.13.5-1 67.53 MiB extra/python-lxml 6.0.0-1 5.88 MiB extra/python-pygments 2.19.2-1 14.38 MiB extra/gtk-doc 1.34.0-3 3.09 MiB core/net-tools 2.10-3 0.48 MiB extra/tpm2-tools 5.7-1 1.44 MiB Total Installed Size: 188.61 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing docbook-xml... installing libxslt... Optional dependencies for libxslt python: Python bindings [pending] installing docbook-xsl... installing glib2-docs... 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 python-lxml-html-clean: enable htmlclean feature installing python-pygments... installing gtk-doc... Optional dependencies for gtk-doc dblatex: PDF support installing net-tools... installing efivar... installing tpm2-tools... Optional dependencies for tpm2-tools tpm2-abrmd: user space resource manager :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Retrieving sources... -> Found gnutls-3.8.10.tar.xz -> Found gnutls-3.8.10.tar.xz.sig -> Found config -> Found gnutls-ktls_disable_keyupdate_test.patch -> Found gnutls-3.8.10-tests-ktls.patch -> Found 1980.patch ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Extracting gnutls-3.8.10.tar.xz with bsdtar ==> Starting prepare()... patching file tests/Makefile.am patching file tests/ktls_utils.h patching file tests/cert-tests/mldsa.sh patching file tests/Makefile.am patching file tests/system-override-compress-cert.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 m4/build-to-host.m4 Copying file m4/gettext.m4 Copying file m4/host-cpu-c-abi.m4 Copying file m4/iconv.m4 Copying file m4/intlmacosx.m4 Copying file m4/lib-link.m4 Copying file m4/nls.m4 Copying file m4/po.m4 Copying file m4/progtest.m4 Copying file po/Makefile.in.in Copying file po/Makevars.template Copying file po/Rules-quot Copying file po/boldquot.sed Copying file po/en@boldquot.header Copying file po/en@quot.header Copying file po/insert-header.sed Copying file po/quot.sed Copying file po/remove-potcdate.sed autoreconf: running: aclocal --force -I m4 -I src/gl/m4 -I lib/unistring/m4 --install aclocal: overwriting 'm4/libtool.m4' with '/usr/share/aclocal/libtool.m4' aclocal: overwriting 'm4/ltoptions.m4' with '/usr/share/aclocal/ltoptions.m4' aclocal: overwriting 'm4/ltversion.m4' with '/usr/share/aclocal/ltversion.m4' aclocal: overwriting 'm4/pkg.m4' with '/usr/share/aclocal/pkg.m4' autoreconf: configure.ac: tracing autoreconf: running: libtoolize --copy --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'. libtoolize: copying file 'build-aux/ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' autoreconf: configure.ac: not using Intltool autoreconf: running: gtkdocize --copy autoreconf: running: aclocal --force -I m4 -I src/gl/m4 -I lib/unistring/m4 --install autoreconf: running: /usr/bin/autoconf --force autoreconf: running: /usr/bin/autoheader --force autoreconf: running: automake --add-missing --copy --force-missing configure.ac:39: installing 'build-aux/compile' configure.ac:29: installing 'build-aux/missing' aminclude_static.am:52: warning: if $(CODE_COVERAGE_BRANCH_COVERAGE: non-POSIX variable name aminclude_static.am:52: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:59: warning: if $(CODE_COVERAGE_BRANCH_COVERAGE: non-POSIX variable name aminclude_static.am:59: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:63: warning: ':='-style assignments are not portable Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:64: warning: code_coverage_v_lcov_cap_$(V: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:65: warning: code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:67: warning: code_coverage_v_lcov_ign_$(V: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:68: warning: code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:70: warning: code_coverage_v_genhtml_$(V: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:71: warning: code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:73: warning: code_coverage_quiet_$(V: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:74: warning: code_coverage_quiet_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:78: warning: subst -,_,$(subst .,_,$(1: non-POSIX variable name aminclude_static.am:78: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:87: warning: addprefix --directory ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:87: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:87: warning: call code_coverage_sanitize,$(PACKAGE_NAME: non-POSIX variable name aminclude_static.am:87: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:88: warning: addprefix --directory ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:88: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:90: warning: addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:90: (probably a GNU make extension) Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:100: warning: ':='-style assignments are not portable Makefile.am:167: 'aminclude_static.am' included from here aminclude_static.am:100: warning: AM_DISTCHECK_CONFIGURE_FLAGS was already defined in condition TRUE, which includes condition CODE_COVERAGE_ENABLED ... Makefile.am:167: 'aminclude_static.am' included from here Makefile.am:21: ... 'AM_DISTCHECK_CONFIGURE_FLAGS' previously defined here doc/Makefile.am: installing 'build-aux/depcomp' tests/Makefile.am:533: warning: variable 'ktls_keyupdate_SOURCES' is defined but no program or tests/Makefile.am:533: library has 'ktls_keyupdate' as canonical name (possible typo) autoreconf: Leaving directory '.' ==> Starting build()... checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking xargs -n works... yes checking whether UID '1002' is supported by ustar format... yes checking whether GID '1002' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar *** *** Checking for compilation programs... checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking whether the compiler is clang... no checking for compiler option needed when checking for declarations... none checking whether make supports the include directive... yes (GNU style) checking dependency style of gcc... gcc3 checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for wchar.h... yes checking for minix/config.h... no checking for sys/socket.h... yes checking for arpa/inet.h... yes checking for features.h... yes checking for stdbool.h... yes checking for byteswap.h... yes checking for sys/param.h... yes checking for sys/time.h... yes checking for netdb.h... yes checking for netinet/in.h... yes checking for limits.h... yes checking for threads.h... yes checking for sys/mman.h... yes checking for pthread.h... yes checking for stdckdint.h... yes checking for sys/uio.h... yes checking for crtdefs.h... no checking for error.h... yes checking for stdio_ext.h... yes checking for termios.h... yes checking for sys/select.h... yes checking for endian.h... yes checking for sys/endian.h... no checking for langinfo.h... yes checking for xlocale.h... no checking for semaphore.h... yes checking for math.h... yes checking for sys/wait.h... yes checking for sys/ioctl.h... yes checking for sys/un.h... yes checking whether it is safe to define __EXTENSIONS__... yes checking whether _XOPEN_SOURCE should be defined... no checking how to run the C preprocessor... gcc -E checking for egrep -e... /usr/bin/grep -E checking for Minix Amsterdam compiler... no checking for ar... ar checking the archiver (ar) interface... ar checking for ar... (cached) ar checking for ranlib... ranlib checking for gcc option to support large files... none needed checking dependency style of gcc... gcc3 checking the archiver (ar) interface... (cached) ar checking for g++... g++ checking whether the compiler supports GNU C++... yes checking whether g++ accepts -g... yes checking for g++ option to enable C++11 features... none needed checking dependency style of g++... gcc3 checking for bison... bison -y checking for a sed that does not truncate output... /usr/bin/sed checking whether to build with code coverage support... no checking whether to enable maintainer-specific portions of Makefiles... yes checking for faketime... no checking for datefudge... no checking whether faketime program works... 1752309839 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 cpuid.h... yes checking for __get_cpuid_count... yes checking for struct iovec.iov_base... yes checking for netinet/tcp.h... yes checking for stdatomic.h... yes checking for library containing __atomic_load_4... -latomic checking for threads.h... (cached) yes checking for sanitizer/asan_interface.h... yes checking for valgrind/memcheck.h... no checking for getrandom... yes checking for KERN_ARND... no checking for getentropy... no checking for nettle >= 3.6... yes checking for hogweed >= 3.6 ... yes checking for __gmpz_cmp in -lgmp... yes checking for libtasn1 >= 4.9... yes checking whether to use the included minitasn1... no checking whether to disable strict DER time encodings for backwards compatibility... no checking whether to allow SHA1 as an acceptable hash for cert digital signatures... yes checking whether to disable the SSL 3.0 protocol... yes checking whether to disable the SSL 2.0 client hello... no checking whether to disable DTLS-SRTP extension... no checking whether to disable ALPN extension... no checking whether to enable TLS heartbeat support... no checking whether to enable SRP authentication support... no checking whether to disable PSK authentication support... no checking whether to disable anonymous authentication support... no checking whether to disable DHE support... no checking whether to disable ECDHE support... no checking whether to disable GOST support... no checking whether to add cryptodev support... no checking whether to add AF_ALG support... no checking whether to add KTLS support... yes checking whether KTLS is supported by the OS... checking for linux/tls.h... yes checking whether to disable OCSP support... no checking size of void *... 8 checking size of long long... 8 checking size of long... 8 checking size of int... 4 checking for library containing setsockopt... none needed checking whether to build OpenSSL compatibility layer... yes checking for gtk-doc... yes checking for gtkdoc-check... gtkdoc-check.test checking for gtkdoc-check... /usr/bin/gtkdoc-check checking for gtkdoc-rebase... /usr/bin/gtkdoc-rebase checking for gtkdoc-mkpdf... /usr/bin/gtkdoc-mkpdf checking whether to build gtk-doc documentation... no checking for glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0... yes checking whether NLS is requested... yes checking for msgfmt... /usr/bin/msgfmt checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext... /usr/bin/xgettext checking for msgmerge... /usr/bin/msgmerge checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for shared library run path origin... done checking 32-bit host C ABI... no checking for ELF binary format... yes checking for the common suffixes of directories in the library search path... lib,lib,lib64 checking for CFPreferencesCopyAppValue... no checking for CFLocaleCopyPreferredLanguages... no checking for GNU gettext in libc... yes checking whether to use NLS... yes checking where the gettext function comes from... libc checking whether byte ordering is bigendian... no checking for fork... yes checking for setitimer... yes checking for getrusage... yes checking for getpwuid_r... yes checking for nanosleep... yes checking for daemon... yes checking for getpid... yes checking for localtime... yes checking for mmap... yes checking for clock_gettime... yes checking for fmemopen... yes checking for __register_atfork... yes checking for secure_getenv... yes checking for getauxval... yes checking for elf_aux_info... no checking for libseccomp... yes checking how to link with libseccomp... /usr/lib/libseccomp.so checking for libcrypto... yes checking how to link with libcrypto... /usr/lib/libcrypto.so od: cannot skip past end of combined input 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 lstat correctly handles trailing slash... yes checking for canonicalize_file_name... yes checking for realpath... yes checking for lstat... yes checking for _set_invalid_parameter_handler... no checking for explicit_bzero... yes checking for fcntl... yes checking for symlink... yes checking for getdtablesize... yes checking for gettimeofday... yes checking for mbsinit... yes checking for mbrtowc... yes checking for mprotect... yes checking for memset_s... no checking for readlink... yes checking for secure_getenv... (cached) yes checking for getuid... yes checking for geteuid... yes checking for getgid... yes checking for getegid... yes checking for snprintf... yes checking for strndup... yes checking for localtime_r... yes checking for vasnprintf... no checking for getpass... yes checking for getexecname... no checking for setenv... yes checking for __xpg_strerror_r... yes checking for isblank... yes checking for pipe... yes checking for pselect... yes checking for pthread_sigmask... yes checking for sleep... yes checking for shutdown... yes checking for usleep... yes checking for mquery... no checking for pstat_getprocvm... no checking for gcc options needed to detect all undeclared functions... none needed checking whether // is distinct from /... no checking whether realpath works... yes checking for faccessat... yes checking for getcwd... yes checking for complete errno.h... yes checking whether ctype.h defines __header_inline... no checking for working fcntl.h... yes checking for pid_t... yes checking for mode_t... yes checking whether byte ordering is bigendian... (cached) no checking whether fopen recognizes a trailing slash... yes checking whether fflush works on input streams... no checking whether stat file-mode macros are broken... no checking for C/C++ restrict keyword... __restrict__ checking for nlink_t... yes checking whether stdin defaults to large file offsets... yes checking for off64_t... yes checking whether ftello is declared... yes checking whether ungetc works on arbitrary bytes... yes checking for ftello... yes checking whether ftello works... yes checking whether getdelim is declared... yes checking whether getdtablesize is declared... yes checking whether getline is declared... yes checking for struct timeval... yes checking for wide-enough struct timeval.tv_sec member... yes checking whether is self-contained... yes checking for shutdown... (cached) yes checking whether defines the SHUT_* macros... yes checking for struct sockaddr_storage... yes checking for sa_family_t... yes checking for struct sockaddr_storage.ss_family... yes checking for IPv4 sockets... yes checking for IPv6 sockets... yes checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... yes checking whether limits.h has SSIZE_MAX... yes checking for wint_t... yes checking whether wint_t is large enough... yes checking whether the compiler produces multi-arch binaries... no checking whether stdint.h conforms to C99... yes checking whether stdint.h works without ISO C predefines... yes checking whether stdint.h has UINTMAX_WIDTH etc.... yes checking whether imported symbols can be declared weak... yes checking for pthread.h... (cached) yes checking for pthread_kill in -lpthread... yes checking whether POSIX threads API is available... yes checking for multithread API to use... posix checking whether malloc is ptrdiff_t safe... yes checking whether malloc, realloc, calloc set errno on failure... yes checking whether malloc (0) returns nonnull... yes checking for mbstate_t... yes checking for nl_langinfo and CODESET... yes checking for a traditional japanese locale... none checking for an english Unicode locale... en_US.UTF-8 checking for a transitional chinese locale... none checking whether mbrtowc handles incomplete characters... yes checking whether mbrtowc works as well as mbtowc... guessing yes checking for mmap... (cached) yes checking for MAP_ANONYMOUS... yes checking whether memchr works... yes checking whether memmem is declared... yes checking whether defines MIN and MAX... no checking whether defines MIN and MAX... yes checking for O_CLOEXEC... yes checking for promoted mode_t type... mode_t checking for pthread_t... yes checking for pthread_spinlock_t... yes checking for pthread_spin_init... yes checking whether realloc should abort upon undefined behaviour... no checking for glibc-compatible sys/cdefs.h... yes checking for sched.h... yes checking for struct sched_param... yes checking whether snprintf returns a byte count as in C99... yes checking whether printf supports POSIX/XSI format strings with positions... yes checking whether snprintf is declared... yes checking for good max_align_t... yes checking whether NULL can be used in arbitrary expressions... yes checking for unreachable... yes checking whether nullptr_t needs ... yes checking for clean definition of __STDC_VERSION_STDDEF_H__... no checking whether fcloseall is declared... yes checking whether getw is declared... yes checking whether putw is declared... yes checking which flavor of printf attribute matches inttypes macros... system checking whether ecvt is declared... yes checking whether fcvt is declared... yes checking whether gcvt is declared... yes checking whether MB_CUR_MAX is correct... yes checking whether strdup is declared... yes checking whether strndup is declared... yes checking whether strnlen is declared... yes checking whether strtok_r is declared... yes checking for struct timespec in ... yes checking for TIME_UTC in ... yes checking whether execvpe is declared... yes checking for inttypes.h... yes checking for stdint.h... yes checking for intmax_t... yes checking whether snprintf truncates the result as in C99... yes checking where to find the exponent in a 'double'... word 1 bit 20 checking for wcslen... yes checking for snprintf... (cached) yes checking for strnlen... yes checking for wcrtomb... yes checking whether _snprintf is declared... no checking whether vsnprintf is declared... yes checking whether uses 'inline' correctly... yes checking whether wcsdup is declared... yes checking for C compiler option to allow warnings... -Wno-error checking for alignas and alignof... yes, keywords checking for alloca as a compiler built-in... yes checking for static_assert... yes, a keyword checking for bool, true, false... yes checking for __builtin_expect... yes checking for working bswap_16, bswap_32, bswap_64... yes checking whether // is distinct from /... (cached) no checking whether dup2 works... yes checking whether fcntl handles F_DUPFD correctly... yes checking whether fcntl understands F_DUPFD_CLOEXEC... needs runtime check checking whether float.h conforms to ISO C23... yes checking whether conversion from 'int' to 'long double' works... yes checking whether fopen supports the mode character 'x'... yes checking whether fopen supports the mode character 'e'... yes checking whether free is known to preserve errno... yes checking for ftello... (cached) yes checking whether ftello works... (cached) yes checking whether __func__ is available... yes checking for getdelim... yes checking for working getdelim function... yes checking whether getdtablesize works... yes checking for getline... yes checking for working getline function... yes checking for gettimeofday with POSIX signature... yes checking for library containing inet_ntop... none required checking whether inet_ntop is declared... yes checking for library containing inet_pton... none required checking whether inet_pton is declared... yes checking for objdump... objdump checking if gcc/ld supports -Wl,--output-def... no checking if LD -Wl,--version-script works... yes checking whether the compiler supports the __inline keyword... yes checking for pthread_rwlock_t... yes checking whether pthread_rwlock_rdlock prefers a writer to a reader... no checking whether lseek detects pipes... yes checking whether SEEK_DATA works but is incompatible with GNU... no checking for memmem... yes checking whether memmem works... yes checking for mempcpy... yes checking for memset_explicit... no checking for explicit_memset... no checking whether is self-contained... yes checking whether open recognizes a trailing slash... yes checking for pmccabe... false checking for PTHREAD_CREATE_DETACHED... yes checking for PTHREAD_MUTEX_RECURSIVE... yes checking for PTHREAD_MUTEX_ROBUST... yes checking for PTHREAD_PROCESS_SHARED... yes checking whether pthread_once works... yes checking for rawmemchr... yes checking whether readlink signature is correct... yes checking whether readlink handles trailing slash correctly... yes checking whether readlink truncates results correctly... yes checking whether realloc (..., 0) returns nonnull... no checking for stdint.h... (cached) yes checking for SIZE_MAX... yes checking for snprintf... (cached) yes checking whether snprintf respects a size of 1... yes checking for socklen_t... yes checking for ssize_t... yes checking whether stat handles trailing slashes on files... yes checking for struct stat.st_atim.tv_nsec... yes checking whether struct stat.st_atim is of type struct timespec... yes checking for struct stat.st_birthtimespec.tv_nsec... no checking for struct stat.st_birthtimensec... no checking for struct stat.st_birthtim.tv_nsec... no checking for stpcpy... yes checking for strcasecmp... yes checking for strncasecmp... yes checking whether strncasecmp is declared... yes checking for working strndup... yes checking for working strnlen... yes checking for strtok_r... yes checking whether strtok_r works... yes checking for strverscmp... yes checking whether strverscmp works... yes checking whether localtime_r is declared... yes checking whether localtime_r is compatible with its POSIX signature... yes checking for variable-length arrays... yes checking for ptrdiff_t... yes checking for vasprintf... yes checking for vsnprintf... yes checking whether snprintf respects a size of 1... (cached) yes checking for stdint.h... (cached) yes checking if environ is properly declared... yes checking for error... yes checking whether error_at_line is declared... yes checking for error_at_line... yes checking for working error function... yes checking whether strerror_r is declared... yes checking whether strerror_r returns char *... yes checking whether fseeko is declared... yes checking for fseeko... yes checking whether fflush works on input streams... (cached) no checking for library containing gethostbyname... none required checking for gethostbyname... yes checking for library containing getservbyname... none required checking for getservbyname... yes checking whether fflush_unlocked is declared... yes checking whether flockfile is declared... yes checking whether fputs_unlocked is declared... yes checking whether funlockfile is declared... yes checking whether putc_unlocked is declared... yes checking whether timespec_get is declared... yes checking for timespec_get... yes checking whether INT32_MAX < INTMAX_MAX... yes checking whether INT64_MAX == LONG_MAX... yes checking whether UINT32_MAX < UINTMAX_MAX... yes checking whether UINT64_MAX == ULONG_MAX... yes checking whether time_t is signed... yes checking whether alarm is declared... yes checking for working mktime... yes checking for compound literals... yes checking for struct tm.tm_gmtoff... yes checking for struct tm.tm_zone... yes checking whether is self-contained... yes checking whether setenv is declared... yes checking whether _putenv is declared... no checking for search.h... yes checking for tsearch... yes checking for sigset_t... yes checking for uid_t... yes checking for gid_t... yes checking for volatile sig_atomic_t... yes checking for sighandler_t... yes checking whether strerror(0) succeeds... yes checking for strerror_r... yes checking for strerror_r with POSIX signature... no checking whether __xpg_strerror_r works... yes checking whether unsetenv is declared... yes checking for C++ compiler option to allow warnings... -Wno-error checking for a traditional french locale... none checking for a turkish Unicode locale... none checking if endian.h defines stdint types... no checking if endian.h defines functions and macros... yes checking whether getcwd (NULL, 0) allocates memory for result... yes checking for getcwd with POSIX signature... yes checking where to find the exponent in a 'float'... word 0 bit 23 checking whether long double and double are the same... no checking where to find the exponent in a 'long double'... word 2 bit 0 checking whether langinfo.h defines CODESET... yes checking whether langinfo.h defines T_FMT_AMPM... yes checking whether langinfo.h defines ALTMON_1... yes checking whether langinfo.h defines ERA... yes checking whether langinfo.h defines YESEXPR... yes checking whether locale.h defines locale_t... yes checking whether locale.h conforms to POSIX:2001... yes checking whether struct lconv is properly defined... yes checking for LC_MESSAGES... yes checking for uselocale... yes checking whether uselocale works... yes checking for fake locale system (OpenBSD)... no checking for Solaris 11.4 locale system... no checking for getlocalename_l... no checking for library needed for semaphore functions... none checking whether NAN macro works... yes checking whether HUGE_VAL works... yes checking whether initstate is declared... yes checking whether setstate is declared... yes checking whether setlocale (LC_ALL, NULL) is multithread-safe... yes checking whether setlocale (category, NULL) is multithread-safe... yes checking for a french Unicode locale... none checking whether declares ioctl... yes checking for alignas and alignof... (cached) yes, keywords checking for alloca as a compiler built-in... (cached) yes checking for static_assert... (cached) yes, a keyword checking for bool, true, false... (cached) yes checking for __builtin_expect... (cached) yes checking for working bswap_16, bswap_32, bswap_64... (cached) yes checking whether calloc (0, n) and calloc (n, 0) return nonnull... yes checking for library containing clock_gettime... none required checking for clock_getres... yes checking for clock_gettime... yes checking for clock_settime... yes checking whether // is distinct from /... (cached) no checking whether dup2 works... (cached) yes checking whether fcntl handles F_DUPFD correctly... (cached) yes checking whether fcntl understands F_DUPFD_CLOEXEC... (cached) needs runtime check checking for flexible array member... yes checking whether float.h conforms to ISO C23... (cached) 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 for memmem... (cached) yes checking whether memmem works... (cached) yes checking for mempcpy... (cached) yes checking for memset_explicit... (cached) no checking for explicit_memset... (cached) no checking for __mktime_internal... no checking whether is self-contained... (cached) yes checking whether open recognizes a trailing slash... (cached) yes checking for bison... bison checking for bison 2.4 or newer... 3.8.2, ok checking whether program_invocation_name is declared... (cached) yes checking whether program_invocation_short_name is declared... (cached) yes checking for PTHREAD_CREATE_DETACHED... (cached) yes checking for PTHREAD_MUTEX_RECURSIVE... (cached) yes checking for PTHREAD_MUTEX_ROBUST... (cached) yes checking for PTHREAD_PROCESS_SHARED... (cached) yes checking whether pthread_once works... (cached) yes checking for rawmemchr... (cached) yes checking whether readlink signature is correct... (cached) yes checking whether readlink handles trailing slash correctly... (cached) yes checking whether readlink truncates results correctly... (cached) yes checking whether realloc (..., 0) returns nonnull... (cached) no checking for reallocarray... yes checking whether select supports a 0 argument... yes checking whether select detects invalid fds... yes checking for library containing getservbyname... (cached) none required checking for getservbyname... (cached) yes checking whether setenv validates arguments... yes checking for stdint.h... (cached) yes checking for SIZE_MAX... (cached) yes checking for snprintf... (cached) yes checking whether snprintf respects a size of 1... (cached) yes checking for socklen_t... (cached) yes checking for ssize_t... (cached) yes checking whether stat handles trailing slashes on files... (cached) yes checking for struct stat.st_atim.tv_nsec... (cached) yes checking whether struct stat.st_atim is of type struct timespec... (cached) yes checking for struct stat.st_birthtimespec.tv_nsec... (cached) no checking for struct stat.st_birthtimensec... (cached) no checking for struct stat.st_birthtim.tv_nsec... (cached) no checking for stpcpy... (cached) yes checking for strcasecmp... (cached) yes checking for strncasecmp... (cached) yes checking whether strncasecmp is declared... (cached) yes checking for working strerror function... yes checking for working strndup... (cached) yes checking for working strnlen... (cached) yes checking for strtok_r... (cached) yes checking whether strtok_r works... (cached) yes checking for strverscmp... (cached) yes checking whether strverscmp works... (cached) yes checking whether localtime_r is declared... (cached) yes checking whether localtime_r is compatible with its POSIX signature... (cached) yes checking whether localtime works even near extrema... yes checking for timezone_t... no checking for tzalloc... no checking for timegm... yes checking for unsetenv... yes checking for unsetenv() return type... int checking whether unsetenv obeys POSIX... yes checking for variable-length arrays... (cached) yes checking for ptrdiff_t... (cached) yes checking for vasprintf... (cached) yes checking for vsnprintf... (cached) yes checking whether snprintf respects a size of 1... (cached) yes checking for stdint.h... (cached) yes checking whether fdopen sets errno... yes checking for ftruncate... yes checking for getpagesize... yes checking whether getpagesize is declared... yes checking whether htons is declared... yes checking whether htonl is declared... yes checking whether ntohs is declared... yes checking whether ntohl is declared... yes checking whether byte ordering is bigendian... (cached) no checking whether byte ordering is bigendian... (cached) no checking for ioctl... yes checking for ioctl with POSIX signature... no checking whether isnan(double) can be used without linking with libm... yes checking whether isnan(float) can be used without linking with libm... yes checking whether isnan(float) works... yes checking whether isnan(long double) can be used without linking with libm... yes checking whether isnanl works... yes checking for newlocale... yes checking for newlocale... (cached) yes checking for newlocale... (cached) yes checking for duplocale... yes checking for freelocale... yes checking for library containing nanosleep... none required checking for working nanosleep... no (mishandles large arguments) checking whether perror matches strerror... yes checking whether signature of pselect conforms to POSIX... yes checking whether pselect detects invalid fds... yes checking for pthread_mutexattr_getrobust... yes checking for pthread_rwlock_init... yes checking whether pthread_rwlock_timedrdlock is declared... yes checking for reasonable pthread_rwlock wait queue handling... no checking whether pthread_create exists as a global function... yes checking whether pthread_mutex_timedlock is declared... yes checking for pthread_mutex_timedlock... yes checking whether pthread_sigmask is a macro... no checking whether pthread_sigmask works without -lpthread... yes checking whether pthread_sigmask returns error numbers... yes checking whether pthread_sigmask unblocks signals correctly... guessing yes checking for putenv compatible with GNU and SVID... yes checking for raise... yes checking for sigprocmask... yes checking for random... yes checking for initstate... yes checking for setstate... yes checking for random.h... no checking for struct random_data... yes checking for random_r... yes checking whether sched_yield is declared... yes checking whether setlocale supports the C locale... yes checking whether setlocale (LC_ALL, NULL) is multithread-safe... (cached) yes checking whether setlocale (category, NULL) is multithread-safe... (cached) yes checking for signbit macro... yes checking for signbit compiler built-ins... yes checking for sigprocmask... (cached) yes checking whether sleep is declared... yes checking for working sleep... yes checking for catgets... yes checking whether symlink handles trailing slash correctly... yes checking for IPv4 sockets... (cached) yes checking for IPv6 sockets... (cached) yes checking for UNIX domain sockets... yes checking for pthread_atfork... yes checking for sys/single_threaded.h... yes checking whether time() works... guessing no checking for struct tm.tm_gmtoff... (cached) yes checking for struct tm.tm_zone... (cached) yes checking for useconds_t... yes checking whether usleep allows large arguments... yes checking for bool, true, false... (cached) yes checking whether the compiler generally respects inline... yes checking for ssize_t... (cached) yes checking for libev... no checking whether C compiler handles -Werror -Wunknown-warning-option... no checking whether C compiler handles -Wtype-limits... yes checking whether -Wno-missing-field-initializers is needed... no checking whether -Wuninitialized is supported... yes checking whether C compiler handles -fanalyzer... yes checking whether C compiler handles -fstrict-flex-arrays... yes checking whether C compiler handles -Wall... yes checking whether C compiler handles -Wbad-function-cast... yes checking whether C compiler handles -Wcast-align=strict... yes checking whether C compiler handles -Wdate-time... yes checking whether C compiler handles -Wdisabled-optimization... yes checking whether C compiler handles -Wdouble-promotion... yes checking whether C compiler handles -Wduplicated-branches... yes checking whether C compiler handles -Wduplicated-cond... yes checking whether C compiler handles -Wextra... yes checking whether C compiler handles -Wflex-array-member-not-at-end... yes checking whether C compiler handles -Winit-self... yes checking whether C compiler handles -Winvalid-pch... yes checking whether C compiler handles -Wlogical-op... yes checking whether C compiler handles -Wmissing-declarations... yes checking whether C compiler handles -Wmissing-include-dirs... yes checking whether C compiler handles -Wmissing-prototypes... yes checking whether C compiler handles -Wnested-externs... yes checking whether C compiler handles -Wnull-dereference... yes checking whether C compiler handles -Wold-style-definition... yes checking whether C compiler handles -Wopenmp-simd... yes checking whether C compiler handles -Wpacked... yes checking whether C compiler handles -Wpointer-arith... yes checking whether C compiler handles -Wshadow... yes checking whether C compiler handles -Wstrict-flex-arrays... yes checking whether C compiler handles -Wstrict-prototypes... yes checking whether C compiler handles -Wsuggest-attribute=cold... yes checking whether C compiler handles -Wsuggest-attribute=format... yes checking whether C compiler handles -Wsuggest-attribute=malloc... yes checking whether C compiler handles -Wsuggest-final-methods... yes checking whether C compiler handles -Wsuggest-final-types... yes checking whether C compiler handles -Wsync-nand... yes checking whether C compiler handles -Wtrampolines... yes checking whether C compiler handles -Wuninitialized... yes checking whether C compiler handles -Wunknown-pragmas... yes checking whether C compiler handles -Wunused-macros... yes checking whether C compiler handles -Wvariadic-macros... yes checking whether C compiler handles -Wvector-operation-performance... yes checking whether C compiler handles -Wwrite-strings... yes checking whether C compiler handles -Warray-bounds=2... yes checking whether C compiler handles -Wattribute-alias=2... yes checking whether C compiler handles -Wbidi-chars=any,ucn... yes checking whether C compiler handles -Wformat-overflow=2... yes checking whether C compiler handles -Wformat=2... yes checking whether C compiler handles -Wformat-truncation=2... yes checking whether C compiler handles -Wimplicit-fallthrough=5... yes checking whether C compiler handles -Wshift-overflow=2... yes checking whether C compiler handles -Wuse-after-free=3... yes checking whether C compiler handles -Wunused-const-variable=2... yes checking whether C compiler handles -Wvla-larger-than=4031... yes checking whether C compiler handles -Wthread-safety... no checking whether C compiler handles -Wno-analyzer-malloc-leak... yes checking whether C compiler handles -Wno-missing-field-initializers... yes checking whether C compiler handles -Wno-unused-parameter... yes checking whether C compiler handles -Wno-format-truncation... yes checking whether C compiler handles -Wimplicit-fallthrough=2... yes checking whether C compiler handles -Wabi=11... yes checking whether C compiler handles -fdiagnostics-show-option... yes checking whether C compiler handles -fno-builtin-strcmp... yes checking whether ln -s works... yes checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... (cached) objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking which variant of shared library versioning to provide... (default) aix 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 -m elf_x86_64) 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 -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) 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 -m elf_x86_64) 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 od: cannot skip past end of combined input checking for libdl... yes checking how to link with libdl... -ldl checking for cmocka >= 1.0.1... no checking for libidn2 >= 2.0.0... yes checking for nettle_get_secp_192r1 in -lhogweed... yes checking for nettle_rsa_sec_decrypt... yes checking for nettle_gost28147_set_key... no checking for nettle_streebog512_update... yes checking for nettle_magma_set_key... no checking for nettle_kuznyechik_set_key... no checking for nettle_cmac_magma_update... no checking for nettle_cmac_kuznyechik_update... no checking for nettle_siv_gcm_encrypt_message... yes checking for nettle_rsa_oaep_sha256_encrypt... yes checking for nettle_cbc_aes128_encrypt... yes checking for nettle_sha3_128_shake_output... yes checking gmp soname... libgmp.so.10 checking nettle soname... libnettle.so.8 checking hogweed soname... libhogweed.so.6 checking whether to build libdane... yes checking for unbound library... no configure: WARNING: *** *** libunbound was not found. Libdane will not be built. *** checking for p11-kit-1 >= 0.23.1... yes checking m soname... checking whether dlopen works with SONAME... yes checking for tss2-esys... yes checking for tss2-mu... yes checking for tss2-tctildr... yes checking tss2-esys soname... libtss2-esys.so.0 checking tss2-mu soname... libtss2-mu.so.0 checking tss2-tctildr soname... libtss2-tctildr.so.0 checking for tss library... no configure: WARNING: *** *** trousers was not found. TPM support will be disabled. *** checking size of unsigned long int... 8 checking size of unsigned int... 4 checking size of time_t... 8 checking for zlib... yes checking z soname... libz.so.1 checking for libbrotlienc >= 1.0.0... yes checking for libbrotlidec >= 1.0.0... yes checking brotlienc soname... libbrotlienc.so.1 checking brotlidec soname... libbrotlidec.so.1 checking for libzstd... yes checking zstd soname... libzstd.so.1 checking for leancrypto >= 1.2.0... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating ldd.sh config.status: creating Makefile config.status: creating doc/Makefile config.status: creating doc/credentials/Makefile config.status: creating doc/credentials/srp/Makefile config.status: creating doc/credentials/x509/Makefile config.status: creating doc/doxygen/Doxyfile config.status: creating doc/examples/Makefile config.status: creating doc/latex/Makefile config.status: creating doc/manpages/Makefile config.status: creating doc/reference/Makefile config.status: creating doc/reference/version.xml config.status: creating doc/scripts/Makefile config.status: creating extra/Makefile config.status: creating extra/includes/Makefile config.status: creating libdane/Makefile config.status: creating libdane/includes/Makefile config.status: creating libdane/gnutls-dane.pc config.status: creating gl/Makefile config.status: creating lib/Makefile config.status: creating lib/accelerated/Makefile config.status: creating lib/accelerated/x86/Makefile config.status: creating lib/accelerated/aarch64/Makefile config.status: creating lib/algorithms/Makefile config.status: creating lib/auth/Makefile config.status: creating lib/ext/Makefile config.status: creating lib/extras/Makefile config.status: creating lib/gnutls.pc config.status: creating lib/includes/Makefile config.status: creating lib/includes/gnutls/gnutls.h config.status: creating lib/minitasn1/Makefile config.status: creating lib/nettle/Makefile config.status: creating lib/pkcs11/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/Makefile config.status: executing libtool commands configure: summary of build options: version: 3.8.10 shared 70:4:40 Host/Target system: x86_64-pc-linux-gnu Build system: x86_64-pc-linux-gnu Install prefix: /usr Compiler: gcc Valgrind: no CFlags: -march=x86-64-v2 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mpclmul -g -ffile-prefix-map=/startdir/src=/usr/src/debug/gnutls -flto=auto -falign-functions=32 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: x86-64 Padlock accel: yes Random gen. variant: getrandom PKCS#11 support: yes TPM support: no TPM2 support: dlopen KTLS support: yes configure: TPM2 library: tss2-esys tss2-mu tss2-tctildr configure: Optional features: (note that included applications might not compile properly if features are disabled) SSL3.0 support: no SSL2.0 client hello: yes Allow SHA1 sign: no DTLS-SRTP support: yes ALPN support: yes OCSP support: yes SRP support: no PSK support: yes DHE support: yes ECDHE support: yes GOST support: yes Anon auth support: yes Heartbeat support: no IDNA support: IDNA 2008 (libidn2) Non-SuiteB curves: yes FIPS140 mode: no Strict DER time: yes configure: Optional libraries: C++ library: yes DANE library: no OpenSSL compat: yes configure: System files: Trust store pkcs11: pkcs11: Trust store dir: Trust store file: Blocklist file: CRL file: Configuration file: /etc/gnutls/config DNSSEC root key file: /etc/unbound/root.key configure: WARNING: *** *** The DNSSEC root key file in /etc/unbound/root.key was not found. *** This file is needed for the verification of DNSSEC responses. *** Use the command: unbound-anchor -a "/etc/unbound/root.key" *** to generate or update it. *** make all-recursive make[1]: Entering directory '/startdir/src/gnutls-3.8.10' Making all in gl make[2]: Entering directory '/startdir/src/gnutls-3.8.10/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 '/startdir/src/gnutls-3.8.10/gl' make[4]: Entering directory '/startdir/src/gnutls-3.8.10/gl' CC libgnu_la-basename-lgpl.lo CC libgnu_la-arpa_inet.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-pjw-bare.lo CC libgnu_la-gl_linkedhash_list.lo CC libgnu_la-gl_list.lo CC libgnu_la-malloca.lo CC libgnu_la-mbszero.lo CC libgnu_la-memset_explicit.lo CC glthread/libgnu_la-once.lo CC libgnu_la-read-file.lo CC libgnu_la-realloc.lo CC libgnu_la-stat-time.lo CC libgnu_la-stdlib.lo CC 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 libgnu_la-xsize.lo CC asnprintf.lo CC fopen.lo CC printf-args.lo CC printf-parse.lo CC vasnprintf.lo CC malloc/libgnu_la-scratch_buffer_grow.lo CC malloc/libgnu_la-scratch_buffer_grow_preserve.lo CC malloc/libgnu_la-scratch_buffer_set_array_size.lo CC glthread/libgnu_la-lock.lo CCLD libgnu.la make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/gl' make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/gl' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/gl' Making all in lib make[2]: Entering directory '/startdir/src/gnutls-3.8.10/lib' make all-recursive make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib' Making all in includes make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/includes' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/includes' Making all in x509 make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/x509' make all-am make[5]: Entering directory '/startdir/src/gnutls-3.8.10/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-high2.lo CC verify-high.lo CC x509_ext.lo CC email-verify.lo CC pkcs7-output.lo CC virt-san.lo CC spki.lo CC tls_features.lo CC krb5.lo CC ip.lo CC ocsp.lo CC ocsp_output.lo CCLD libgnutls_x509.la make[5]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/x509' make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/x509' Making all in auth make[4]: Entering directory '/startdir/src/gnutls-3.8.10/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 '/startdir/src/gnutls-3.8.10/lib/auth' Making all in ext make[4]: Entering directory '/startdir/src/gnutls-3.8.10/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 status_request.c: In function 'client_send': status_request.c:71:33: warning: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (6 chars into 5 available) [-Wunterminated-string-initialization] 71 | const uint8_t data[5] = "\x01\x00\x00\x00\x00"; | ^~~~~~~~~~~~~~~~~~~~~~ CC alpn.lo CC srtp.lo CCLD libgnutls_ext.la make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/ext' Making all in algorithms make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/algorithms' CC cert_types.lo CC ciphersuites.lo CC ciphers.lo CC ecc.lo CC kx.lo CC mac.lo CC protocols.lo CC publickey.lo CC secparams.lo CC sign.lo CC groups.lo CCLD libgnutls_alg.la make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/algorithms' Making all in extras make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/extras' CC randomart.lo CC hex.lo CCLD libgnutls_extras.la make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/extras' Making all in accelerated make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/accelerated' Making all in x86 make[5]: Entering directory '/startdir/src/gnutls-3.8.10/lib/accelerated/x86' CC x86-common.lo CC sha-x86-ssse3.lo CC hmac-x86-ssse3.lo CC aes-gcm-x86-ssse3.lo CC aes-gcm-x86-aesni.lo CC aes-cbc-x86-ssse3.lo CC aes-cbc-x86-aesni.lo CC aes-ccm-x86-aesni.lo CC aes-xts-x86-aesni.lo CC sha-padlock.lo CC hmac-padlock.lo CC aes-padlock.lo CC aes-gcm-padlock.lo CC aes-gcm-x86-pclmul.lo CC aes-gcm-x86-pclmul-avx.lo CCAS elf/aesni-x86_64.lo CCAS elf/ghash-x86_64.lo CCAS elf/sha1-ssse3-x86_64.lo CCAS elf/sha512-ssse3-x86_64.lo CCAS elf/aes-ssse3-x86_64.lo CCAS elf/aesni-gcm-x86_64.lo CCAS elf/sha256-ssse3-x86_64.lo CCAS elf/e_padlock-x86_64.lo x86-common.c: In function 'check_phe_partial': x86-common.c:342:31: warning: initializer-string for array of 'char' truncates NUL terminator but destination lacks 'nonstring' attribute (65 chars into 64 available) [-Wunterminated-string-initialization] 342 | const char text[64] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CCLD libx86.la make[5]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/accelerated/x86' make[5]: Entering directory '/startdir/src/gnutls-3.8.10/lib/accelerated' CC accelerated.lo CC cryptodev.lo CC cryptodev-gcm.lo CC afalg.lo CCLD libaccelerated.la make[5]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/accelerated' make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/accelerated' Making all in pkcs11 make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/pkcs11' CC p11_provider.lo CC p11_cipher.lo CC p11_pk.lo CC p11_mac.lo CCLD libgnutls_pkcs11.la make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/pkcs11' Making all in nettle make[4]: Entering directory '/startdir/src/gnutls-3.8.10/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 '/startdir/src/gnutls-3.8.10/lib/nettle' make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib' CC range.lo CC record.lo CC compress.lo CC debug.lo CC cipher.lo CC handshake-tls13.lo CC mbuffers.lo CC buffers.lo CC handshake.lo CC errors.lo CC dh.lo CC kx.lo CC cipher-cbc.lo CC priority.lo CC hash_int.lo CC cipher_int.lo CC session.lo CC db.lo CC x509_b64.lo CC hello_ext.lo CC auth.lo CC sslv2_compat.lo CC datum.lo CC session_pack.lo CC mpi.lo CC pk.lo CC cert-cred.lo CC global.lo CC constate.lo CC anon_cred.lo CC pkix_asn1_tab.lo CC gnutls_asn1_tab.lo CC mem.lo CC fingerprint.lo CC tls-sig.lo CC ecc.lo CC alert.lo CC privkey_raw.lo CC str-iconv.lo CC system.lo CC profiles.lo CC str.lo CC str-unicode.lo CC str-idna.lo CC state.lo CC cert-cred-x509.lo CC file.lo CC supplemental.lo CC random.lo CC crypto-api.lo CC privkey.lo CC pcert.lo CC pubkey.lo CC locks.lo CC dtls.lo CC system_override.lo CC crypto-backend.lo CC verify-tofu.lo CC pin.lo CC tpm.lo CC fips.lo CC safe-memfuncs.lo CC atfork.lo CC randomart.lo CC urls.lo CC prf.lo CC auto-verify.lo CC dh-session.lo CC cert-session.lo CC handshake-checks.lo CC dtls-sw.lo CC dh-primes.lo CC openpgp_compat.lo CC crypto-selftests.lo CC crypto-selftests-pk.lo CC secrets.lo CC extv.lo CC hello_ext_lib.lo CC ocsp-api.lo CC stek.lo CC cert-cred-rawpk.lo CC iov.lo CC system/ktls.lo CC pathbuf.lo CC vko.lo CC tpm2.lo CC tpm2_esys.lo CC dlwrap/tss2_esys.lo CC dlwrap/tss2_mu.lo CC dlwrap/tss2_tctildr.lo CC system/keys-dummy.lo CC tls13-sig.lo CC tls13/finished.lo CC tls13/key_update.lo CC tls13/hello_retry.lo CC tls13/session_ticket.lo CC tls13/certificate.lo CC tls13/early_data.lo CC tls13/post_handshake.lo CC tls13/psk_ext_parser.lo CC tls13/anti_replay.lo CC pkcs11.lo CC pkcs11x.lo CC pkcs11_privkey.lo CC pkcs11_write.lo CC pkcs11_secret.lo CC pkcs11_int.lo CC srp.lo CC psk.lo CXX libgnutlsxx_la-gnutlsxx.lo CC system/certs.lo CC system/threads.lo CC system/fastopen.lo CC system/sockets.lo CC inih/ini.lo CC dlwrap/zlib.lo CC dlwrap/zstd.lo CC dlwrap/brotlienc.lo CC 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 '/startdir/src/gnutls-3.8.10/lib' make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/lib' Making all in extra make[2]: Entering directory '/startdir/src/gnutls-3.8.10/extra' Making all in includes make[3]: Entering directory '/startdir/src/gnutls-3.8.10/extra/includes' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/extra/includes' make[3]: Entering directory '/startdir/src/gnutls-3.8.10/extra' CC gnutls_openssl.lo CC openssl_compat.lo CCLD libgnutls-openssl.la /usr/bin/nm: libgnu_la-arpa_inet.o: no symbols /usr/bin/nm: libgnu_la-fd-hook.o: no symbols /usr/bin/nm: libgnu_la-stdlib.o: no symbols /usr/bin/nm: libgnu_la-sys_socket.o: no symbols /usr/bin/nm: libgnu_la-threadlib.o: no symbols /usr/bin/nm: libgnu_la-tls.o: no symbols /usr/bin/nm: libgnu_la-unistd.o: no symbols make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/extra' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/extra' Making all in po make[2]: Entering directory '/startdir/src/gnutls-3.8.10/po' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/po' Making all in src/gl make[2]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl' GEN alloca.h GEN arpa/inet.h GEN error.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 signal.h GEN stddef.h GEN stdio.h GEN stdlib.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/types.h GEN sys/uio.h GEN time.h GEN unistd.h GEN wchar.h make all-recursive make[3]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl' Making all in . make[4]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl' CC libgnu_gpl_la-arpa_inet.lo CC libgnu_gpl_la-basename-lgpl.lo CC libgnu_gpl_la-c-ctype.lo CC libgnu_gpl_la-c-strcasecmp.lo CC libgnu_gpl_la-c-strncasecmp.lo CC libgnu_gpl_la-cloexec.lo CC libgnu_gpl_la-close-stream.lo CC libgnu_gpl_la-exitfail.lo CC libgnu_gpl_la-fcntl.lo CC libgnu_gpl_la-fd-hook.lo CC libgnu_gpl_la-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-pjw-bare.lo CC libgnu_gpl_la-ialloc.lo CC libgnu_gpl_la-gl_linked_list.lo CC libgnu_gpl_la-gl_linkedhash_list.lo CC libgnu_gpl_la-gl_list.lo CC libgnu_gpl_la-malloca.lo CC libgnu_gpl_la-mbszero.lo CC libgnu_gpl_la-memset_explicit.lo CC glthread/libgnu_gpl_la-once.lo CC libgnu_gpl_la-parse-datetime.lo CC libgnu_gpl_la-progname.lo CC libgnu_gpl_la-read-file.lo CC libgnu_gpl_la-realloc.lo CC libgnu_gpl_la-reallocarray.lo CC libgnu_gpl_la-sockets.lo CC libgnu_gpl_la-stat-time.lo CC libgnu_gpl_la-stdlib.lo CC libgnu_gpl_la-sys_socket.lo CC glthread/libgnu_gpl_la-threadlib.lo CC libgnu_gpl_la-time_rz.lo CC libgnu_gpl_la-timespec.lo CC glthread/libgnu_gpl_la-tls.lo CC libgnu_gpl_la-unistd.lo CC libgnu_gpl_la-vsnzprintf.lo CC libgnu_gpl_la-xmalloc.lo CC libgnu_gpl_la-xalloc-die.lo CC libgnu_gpl_la-gl_xlist.lo CC libgnu_gpl_la-xsize.lo CC asnprintf.lo CC fopen.lo CC mktime.lo CC printf-args.lo CC printf-parse.lo CC vasnprintf.lo CC malloc/libgnu_gpl_la-scratch_buffer_grow.lo CC malloc/libgnu_gpl_la-scratch_buffer_grow_preserve.lo CC malloc/libgnu_gpl_la-scratch_buffer_set_array_size.lo CC glthread/libgnu_gpl_la-lock.lo CCLD libgnu_gpl.la make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl' Making all in tests make[4]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' GEN ctype.h GEN endian.h GEN langinfo.h GEN locale.h GEN math.h GEN sys/ioctl.h ## ---------------------------------------------------- ## ## ------------------- Gnulib tests ------------------- ## ## You can ignore compiler warnings in this directory. ## ## ---------------------------------------------------- ## make all-recursive make[5]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' Making all in . make[6]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[6]: Nothing to be done for 'all-am'. make[6]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[5]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl' Making all in src make[2]: Entering directory '/startdir/src/gnutls-3.8.10/src' make all-am make[3]: Entering directory '/startdir/src/gnutls-3.8.10/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 cli.o CC benchmark-cipher.o CC benchmark.o CC benchmark-tls.o CC ocsptool-common.o CC gnutls-cli-options.lo CC ocsptool.o CC ocsptool-options.lo CC p11tool-p11tool.o CC p11tool-pkcs11.o CC p11tool-certtool-common.o CC p11tool-certtool-extras.o serv.c: In function 'terminate': serv.c:1140:9: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 1140 | write(STDERR_FILENO, buf, p - buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC p11tool-common.o CC p11tool-options.lo CC systemkey.o CC systemkey-tool-options.lo CC dumpcfg-cfg.o CC danetool-options.lo CCLD libcmd-psk.la CCLD libcmd-cli-debug.la CCLD libcmd-serv.la CCLD libcmd-ocsp.la CCLD libcmd-cli.la CCLD dumpcfg CCLD gnutls-cli-debug CCLD psktool CCLD gnutls-serv CCLD ocsptool CCLD gnutls-cli 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 systemkey CCLD p11tool CCLD certtool In function 'yyparse': lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 53:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2224 || case 53: /* rel: relunit */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 54:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2230 || case 54: /* rel: dayshift */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->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 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-23 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (15) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(16) ...to here | | (17) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(18) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (19) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(20) ...to here | | (21) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(22) ...to here | | (23) calling 'yylex' from 'yyparse' | +--> 'yylex': events 24-25 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (24) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (25) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 26-27 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (26) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (27) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 28 | |lto1: | (28): ...to here | <------+ | 'yylex': event 29 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (29) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 30-50 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (41) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(42) ...to here | | (43) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(44) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (45) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(46) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (31) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(32) ...to here | | (33) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(34) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (47) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(48) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (49) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(50) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (35) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(36) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(38) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (39) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(40) ...to here | 'yyparse': event 51 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (51) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 52-53 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (52) entry to 'digits_to_date_time' (53) region created on stack here | 'digits_to_date_time': event 54 | |lto1: | (54): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (15) region created on stack here | | (16) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (27) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 28 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (28) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 29 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(29) ...to here | <------+ | 'yyparse': events 30-37 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (31) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(32) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (33) following 'false' branch (when 'yyn_278 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(34) ...to here | | (35) following 'false' branch (when 'yyerrstatus_247 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(36) ...to here | | (37) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(21) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (22) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(23) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (24) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (26) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 27 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (27) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 28 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(28) ...to here | <------+ | 'yyparse': events 29-34 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (29) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (30) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(31) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (32) following 'true' branch (when 'yyn_278 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(33) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (34) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:698:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:698:134: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:717:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:717:134: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_61->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_61->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | | (54) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (54) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | | (54) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | 848 | pc->day = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_150->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value '_150->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_213->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (52) use of uninitialized value '_213->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | In function 'yyparse': lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 53:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2224 || case 53: /* rel: relunit */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 54:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2230 || case 54: /* rel: dayshift */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->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 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-23 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (15) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(16) ...to here | | (17) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(18) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (19) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(20) ...to here | | (21) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(22) ...to here | | (23) calling 'yylex' from 'yyparse' | +--> 'yylex': events 24-25 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (24) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (25) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 26-27 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (26) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (27) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 28 | |lto1: | (28): ...to here | <------+ | 'yylex': event 29 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (29) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 30-50 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (41) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(42) ...to here | | (43) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(44) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (45) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(46) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (31) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(32) ...to here | | (33) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(34) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (47) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(48) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (49) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(50) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (35) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(36) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(38) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (39) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(40) ...to here | 'yyparse': event 51 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (51) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 52-53 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (52) entry to 'digits_to_date_time' (53) region created on stack here | 'digits_to_date_time': event 54 | |lto1: | (54): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (15) region created on stack here | | (16) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (27) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 28 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (28) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 29 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(29) ...to here | <------+ | 'yyparse': events 30-37 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (31) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(32) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (33) following 'false' branch (when 'yyn_278 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(34) ...to here | | (35) following 'false' branch (when 'yyerrstatus_247 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(36) ...to here | | (37) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(21) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (22) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(23) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (24) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (26) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 27 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (27) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 28 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(28) ...to here | <------+ | 'yyparse': events 29-34 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (29) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (30) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(31) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (32) following 'true' branch (when 'yyn_278 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(33) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (34) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:698:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:698:134: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:717:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:717:134: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_61->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_61->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | | (54) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (54) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | | (54) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | 848 | pc->day = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_150->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value '_150->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_213->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (52) use of uninitialized value '_213->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | In function 'yyparse': lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 53:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2224 || case 53: /* rel: relunit */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 54:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2230 || case 54: /* rel: dayshift */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->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 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-23 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (15) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(16) ...to here | | (17) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(18) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (19) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(20) ...to here | | (21) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(22) ...to here | | (23) calling 'yylex' from 'yyparse' | +--> 'yylex': events 24-25 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (24) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (25) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 26-27 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (26) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (27) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 28 | |lto1: | (28): ...to here | <------+ | 'yylex': event 29 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (29) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 30-50 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (41) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(42) ...to here | | (43) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(44) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (45) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(46) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (31) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(32) ...to here | | (33) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(34) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (47) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(48) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (49) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(50) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (35) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(36) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(38) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (39) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(40) ...to here | 'yyparse': event 51 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (51) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 52-53 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (52) entry to 'digits_to_date_time' (53) region created on stack here | 'digits_to_date_time': event 54 | |lto1: | (54): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (15) region created on stack here | | (16) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (27) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 28 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (28) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 29 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(29) ...to here | <------+ | 'yyparse': events 30-37 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (31) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(32) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (33) following 'false' branch (when 'yyn_278 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(34) ...to here | | (35) following 'false' branch (when 'yyerrstatus_247 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(36) ...to here | | (37) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(21) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (22) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(23) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (24) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (26) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 27 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (27) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 28 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(28) ...to here | <------+ | 'yyparse': events 29-34 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (29) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (30) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(31) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (32) following 'true' branch (when 'yyn_278 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(33) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (34) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:698:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:698:134: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:717:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:717:134: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_61->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_61->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | | (54) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (54) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | | (54) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | 848 | pc->day = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_150->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value '_150->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_213->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (52) use of uninitialized value '_213->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | In function 'yyparse': lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 53:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2224 || case 53: /* rel: relunit */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 54:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2230 || case 54: /* rel: dayshift */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->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 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-23 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (15) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(16) ...to here | | (17) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(18) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (19) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(20) ...to here | | (21) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(22) ...to here | | (23) calling 'yylex' from 'yyparse' | +--> 'yylex': events 24-25 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (24) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (25) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 26-27 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (26) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (27) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 28 | |lto1: | (28): ...to here | <------+ | 'yylex': event 29 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (29) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 30-50 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (41) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(42) ...to here | | (43) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(44) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (45) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(46) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (31) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(32) ...to here | | (33) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(34) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (47) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(48) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (49) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(50) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (35) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(36) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(38) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (39) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(40) ...to here | 'yyparse': event 51 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (51) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 52-53 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (52) entry to 'digits_to_date_time' (53) region created on stack here | 'digits_to_date_time': event 54 | |lto1: | (54): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (15) region created on stack here | | (16) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (27) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 28 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (28) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 29 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(29) ...to here | <------+ | 'yyparse': events 30-37 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (31) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(32) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (33) following 'false' branch (when 'yyn_278 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(34) ...to here | | (35) following 'false' branch (when 'yyerrstatus_247 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(36) ...to here | | (37) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(21) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (22) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(23) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (24) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (26) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 27 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (27) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 28 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(28) ...to here | <------+ | 'yyparse': events 29-34 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (29) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (30) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(31) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (32) following 'true' branch (when 'yyn_278 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(33) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (34) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:698:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:698:134: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:717:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:717:134: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_61->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_61->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | | (54) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (54) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | | (54) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | 848 | pc->day = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_150->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value '_150->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_213->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (52) use of uninitialized value '_213->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->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 'yyparse': lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 54:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2230 || case 54: /* rel: dayshift */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 53:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2224 || case 53: /* rel: relunit */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->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 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-23 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (15) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(16) ...to here | | (17) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(18) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (19) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(20) ...to here | | (21) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(22) ...to here | | (23) calling 'yylex' from 'yyparse' | +--> 'yylex': events 24-25 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (24) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (25) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 26-27 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (26) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (27) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 28 | |lto1: | (28): ...to here | <------+ | 'yylex': event 29 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (29) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 30-50 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (41) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(42) ...to here | | (43) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(44) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (45) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(46) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (31) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(32) ...to here | | (33) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(34) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (47) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(48) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (49) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(50) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (35) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(36) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(38) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (39) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(40) ...to here | 'yyparse': event 51 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (51) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 52-53 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (52) entry to 'digits_to_date_time' (53) region created on stack here | 'digits_to_date_time': event 54 | |lto1: | (54): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (15) region created on stack here | | (16) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (27) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 28 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (28) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 29 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(29) ...to here | <------+ | 'yyparse': events 30-37 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (31) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(32) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (33) following 'false' branch (when 'yyn_278 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(34) ...to here | | (35) following 'false' branch (when 'yyerrstatus_247 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(36) ...to here | | (37) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(21) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (22) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(23) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (24) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (26) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 27 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (27) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 28 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(28) ...to here | <------+ | 'yyparse': events 29-34 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (29) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (30) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(31) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (32) following 'true' branch (when 'yyn_278 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(33) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (34) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:698:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:698:134: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:717:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:717:134: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_61->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_61->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | | (54) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (54) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | | (54) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | 848 | pc->day = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_150->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value '_150->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_213->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (52) use of uninitialized value '_213->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | In function 'yyparse': lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 53:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2224 || case 53: /* rel: relunit */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 54:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2230 || case 54: /* rel: dayshift */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->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 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-23 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (15) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(16) ...to here | | (17) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(18) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (19) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(20) ...to here | | (21) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(22) ...to here | | (23) calling 'yylex' from 'yyparse' | +--> 'yylex': events 24-25 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (24) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (25) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 26-27 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (26) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (27) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 28 | |lto1: | (28): ...to here | <------+ | 'yylex': event 29 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (29) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 30-50 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (41) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(42) ...to here | | (43) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(44) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (45) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(46) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (31) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(32) ...to here | | (33) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(34) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (47) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(48) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (49) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(50) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (35) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(36) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(38) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (39) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(40) ...to here | 'yyparse': event 51 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (51) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 52-53 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (52) entry to 'digits_to_date_time' (53) region created on stack here | 'digits_to_date_time': event 54 | |lto1: | (54): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (15) region created on stack here | | (16) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (27) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 28 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (28) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 29 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(29) ...to here | <------+ | 'yyparse': events 30-37 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (31) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(32) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (33) following 'false' branch (when 'yyn_278 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(34) ...to here | | (35) following 'false' branch (when 'yyerrstatus_247 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(36) ...to here | | (37) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(21) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (22) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(23) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (24) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (26) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 27 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (27) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 28 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(28) ...to here | <------+ | 'yyparse': events 29-34 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (29) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (30) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(31) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (32) following 'true' branch (when 'yyn_278 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(33) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (34) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:698:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:698:134: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:717:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:717:134: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_61->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_61->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | | (54) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (54) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | | (54) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | 848 | pc->day = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_150->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value '_150->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_213->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (52) use of uninitialized value '_213->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | In function 'yyparse': lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 53:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2224 || case 53: /* rel: relunit */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 54:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2230 || case 54: /* rel: dayshift */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->rel.month' here | lto1: warning: use of uninitialized value 'yyvsp_253->rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |lto1: | (52): use of uninitialized value 'yyvsp_253->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 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-23 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (15) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(16) ...to here | | (17) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(18) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (19) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(20) ...to here | | (21) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(22) ...to here | | (23) calling 'yylex' from 'yyparse' | +--> 'yylex': events 24-25 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (24) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (25) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 26-27 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (26) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (27) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 28 | |lto1: | (28): ...to here | <------+ | 'yylex': event 29 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (29) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 30-50 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (41) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(42) ...to here | | (43) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(44) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (45) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(46) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (31) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(32) ...to here | | (33) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(34) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (47) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(48) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (49) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(50) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (35) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(36) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(38) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (39) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(40) ...to here | 'yyparse': event 51 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (51) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 52-53 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (52) entry to 'digits_to_date_time' (53) region created on stack here | 'digits_to_date_time': event 54 | |lto1: | (54): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (15) region created on stack here | | (16) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (27) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 28 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (28) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 29 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(29) ...to here | <------+ | 'yyparse': events 30-37 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (30) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (31) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(32) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (33) following 'false' branch (when 'yyn_278 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(34) ...to here | | (35) following 'false' branch (when 'yyerrstatus_247 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(36) ...to here | | (37) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(21) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (22) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(23) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (24) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (26) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 27 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (27) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 28 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(28) ...to here | <------+ | 'yyparse': events 29-34 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (29) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (30) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(31) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (32) following 'true' branch (when 'yyn_278 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(33) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (34) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:698:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:698:134: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:717:134: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:717:134: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_nsec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_61->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_61->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (52) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | | (54) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(53) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (54) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | | (54) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': events 52-54 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(53) ...to here | 848 | pc->day = $3.value; | | | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (52) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (52) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (52) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_150->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value '_150->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (52) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_253 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_213->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (52) use of uninitialized value '_213->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_253->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) inlined call to 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-8 | | 1601 | if (tm->tm_zone[0]) | | ^ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(8) ...to here | <------+ | 'parse_datetime_body': events 9-10 | | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ^ | | | | | (9) following 'true' branch (when 'quarter_175 != 4')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(10) ...to here | 'parse_datetime_body': event 11 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (11) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 12 | |lto1: | (12): ...to here | 'parse_datetime_body': event 13 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (13) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 14-24 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (14) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (15) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(17) ...to here | | (18) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(19) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (20) following 'false' branch (when 'yyn_273 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(21) ...to here | | (22) following 'true' branch (when 'yychar_230 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(23) ...to here | | (24) calling 'yylex' from 'yyparse' | +--> 'yylex': events 25-26 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (25) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (26) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 27-28 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (27) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (28) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 29 | |lto1: | (29): ...to here | <------+ | 'yylex': event 30 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (30) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 31-51 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(43) ...to here | | (44) following 'false' branch (when 'yystate_243 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(45) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (46) following 'true' branch (when 'yyn_273 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(47) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (32) following 'false' branch (when 'yychar_231 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(33) ...to here | | (34) following 'true' branch (when 'yychar_231 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(35) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (48) following 'false' branch (when 'yyn_283 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(49) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (50) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(51) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (36) following 'true' branch (when 'yyn_424 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(37) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(39) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (40) following 'true' branch (when 'yyn_426 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(41) ...to here | 'yyparse': event 52 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (52) use of uninitialized value 'yyvsp_253->textintval.value' here | make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/src' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/src' Making all in tests make[2]: Entering directory '/startdir/src/gnutls-3.8.10/tests' Making all in . make[3]: Entering directory '/startdir/src/gnutls-3.8.10/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 libpkcs11mock2.la CCLD libpkcs11mock3.la CCLD libutils.la CCLD libpkcs11mock1.la make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/tests' Making all in cert-tests make[3]: Entering directory '/startdir/src/gnutls-3.8.10/tests/cert-tests' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/tests/cert-tests' Making all in slow make[3]: Entering directory '/startdir/src/gnutls-3.8.10/tests/slow' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/tests/slow' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/tests' Making all in fuzz make[2]: Entering directory '/startdir/src/gnutls-3.8.10/fuzz' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/fuzz' Making all in doc/manpages make[2]: Entering directory '/startdir/src/gnutls-3.8.10/doc/manpages' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/doc/manpages' Making all in doc make[2]: Entering directory '/startdir/src/gnutls-3.8.10/doc' Making all in examples make[3]: Entering directory '/startdir/src/gnutls-3.8.10/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-resume CCLD ex-client-dtls 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-cert-select-pkcs11 CCLD ex-serv-anon 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_65' [-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_65' could be invalid CXXLD ex-cxx ex-ocsp-client.c: In function 'load_cert': ex-ocsp-client.c:182:19: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 182 | data.size = size; | ^ ex-ocsp-client.c:175:16: note: 'size' was declared here 175 | size_t size; | ^ tlsproxy/tlsproxy.c: In function 'runlistener': tlsproxy/tlsproxy.c:89:22: warning: leak of file descriptor 'bindtoaddress (listenaddr)' [CWE-775] [-Wanalyzer-fd-leak] 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | ^ 'runlistener': events 1-2 | | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-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) 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 | 'bindtoaddress': event 14 | | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (14) following 'true' branch... ->-+ | | | | 'bindtoaddress': event 15 | |lto1: | (15): ...to here | 'bindtoaddress': events 16-19 | | 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 | 'bindtoaddress': event 20 | | 112 | if (listen(fd, 5) < 0) { | | ^ | | | | | (20) following 'false' branch... ->-+ | | | | 'bindtoaddress': event 21 | | | | | |+-----------------------------------------------+ | 83 || return -1; | || ^ | || | | |+---------------------->(21) ...to here | <------+ | 'runlistener': event 22 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (22) returning to 'runlistener' from 'bindtoaddress' | 'runlistener': event 23 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (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-12 | | 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 | 'bindtoaddress': event 13 | | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'bindtoaddress': event 14 | |lto1: | (14): ...to here | 'bindtoaddress': events 15-17 | | 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 | 'bindtoaddress': event 18 | | 112 | if (listen(fd, 5) < 0) { | | ^ | | | | | (18) following 'false' branch... ->-+ | | | | 'bindtoaddress': event 19 | | | | | |+-----------------------------------------------+ | 83 || return -1; | || ^ | || | | |+---------------------->(19) ...to here | <------+ | 'runlistener': event 20 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (20) returning to 'runlistener' from 'bindtoaddress' | 'runlistener': event 21 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (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-26 | | 237 | if (rxsigquit) | | ^ | | | | | (25) following 'false' branch... ->-+ | | | | | | | |+-------------------------------------------------------+ | 238 || break; | 239 || if (nofork < 2) { | || ~ | || | | |+-------------------------->(26) ...to here | 'runlistener': events 27-29 | | 239 | if (nofork < 2) { | | ^ | | | | | (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-39 | | 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 | 'connecttoaddress': events 40-43 | | 156 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (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': event 44 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ^ | | | | | (44) returning to 'runproxy' from 'connecttoaddress' | 'runproxy': events 45-47 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ^ | | | | | (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_41' is non-NULL)... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 175 || if (quitfn) | || ~ | || | | |+---------->(50) ...to here | | (51) following 'true' branch (when 'quitfn_42(D)' is non-NULL)... ->-+ | | | | | | | |+--------------------------------------------------------------------------------+ | 176 || s->quitfn = quitfn; | || ~ | || | | |+------------------------->(52) ...to here |...... | 180 | if (erroutfn) | | ~ | | | | | (53) following 'false' branch (when 'erroutfn_45(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_26 >= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 238 || gnutls_session_set_ptr(s->session, (void *)s); | || ~ | || | | |+------->(58) ...to here |...... | 251 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 258 || s->creds); | || ~ | || | | |+------------------------------------->(60) ...to here | 259 | if (ret < 0) { | | ~ | | | | | (61) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 265 || if (isserver) { | || ~ | || | | |+---------->(62) ...to here | | (63) following 'true' branch (when 'isserver_69(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-67 | |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 | 'runproxy': events 68-70 | | 198 | if (server) | | ^ | | | | | (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-95 | |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')... ->-+ | | | | 'socksetnonblock': events 96-97 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(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': event 104 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ^ | | | | | (104) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 105-109 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ^ | | | | | (105) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 313 || (gnutls_transport_ptr_t)(intptr_t)cryptfd); | || ~ | || | | |+-------------------------------------------------------->(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-120 | |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')... ->-+ | | | | 'socksetnonblock': events 121-122 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(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': event 129 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ^ | | | | | (129) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 130-132 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ^ | | | | | (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-143 | |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')... ->-+ | | | | 'socksetnonblock': events 144-145 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(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': event 152 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ^ | | | | | (152) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 153-155 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ^ | | | | | (153) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 332 || maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1; | || ~ | || | | |+------------------------------------------------->(154) ...to here | 333 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ~ | | | | | (155) following 'true' branch... ->-+ | | | | 'tlssession_mainloop': event 156 | | | | | |+----------------------------------------------------------------------------+ | 334 || while ((!plainEOF || !cryptEOF) && !quit(s)) { | || ^ | || | | |+------------------------------------------->(156) inlined call to 'quit' from 'tlssession_mainloop' | +--> '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': event 160 | | 340 | FD_ZERO(&readfds); | | ^ | | | | | (160) following 'true' branch (when '__i_95 != 16')... ->-+ | | | | 'tlssession_mainloop': events 161-162 | | | | | |+--------------------------------------------------------------------------+ | 340 || FD_ZERO(&readfds); | || ^ | || | | |+--------------->(161) ...to here | | (162) following 'false' branch (when '__i_95 == 16')... ->-+ | | | | 'tlssession_mainloop': event 163 | |lto1: | (163): ...to here | 'tlssession_mainloop': event 164 | | 341 | FD_ZERO(&writefds); | | ^ | | | | | (164) following 'true' branch (when '__i_96 != 16')... ->-+ | | | | 'tlssession_mainloop': events 165-169 | | | | | |+--------------------------------------------------------------------------+ | 341 || FD_ZERO(&writefds); | || ^ | || | | |+--------------->(165) ...to here | | (166) following 'false' branch (when '__i_96 == 16')... ->-+ | | | | | | | |+---------------------------------------------------------------------------+ | 342 || | 343 || size_t buffered = gnutls_record_check_pending(s->session); | || ~ | || | | |+--------------------------------->(167) ...to here |...... | 347 | if (plainEOF) { | | ~ | | | | | (168) following 'false' branch (when 'plainEOF_88 == 0')... ->-+ | | | |...... | | | | |+----------------------------------------------------------------------------------+ | 355 || if (!bufIsEmpty(cryptToPlain)) | || ~ | || | | |+---------------------------->(169) ...to here | 'tlssession_mainloop': events 170-172 | | 355 | if (!bufIsEmpty(cryptToPlain)) | | ^ | | | | | (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-12 | | 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 | 'bindtoaddress': event 13 | | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'bindtoaddress': event 14 | |lto1: | (14): ...to here | 'bindtoaddress': events 15-17 | | 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 | 'bindtoaddress': event 18 | | 112 | if (listen(fd, 5) < 0) { | | ^ | | | | | (18) following 'false' branch... ->-+ | | | | 'bindtoaddress': event 19 | | | | | |+-----------------------------------------------+ | 83 || return -1; | || ^ | || | | |+---------------------->(19) ...to here | <------+ | 'runlistener': event 20 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (20) returning to 'runlistener' from 'bindtoaddress' | 'runlistener': event 21 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (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-26 | | 237 | if (rxsigquit) | | ^ | | | | | (25) following 'false' branch... ->-+ | | | | | | | |+-------------------------------------------------------+ | 238 || break; | 239 || if (nofork < 2) { | || ~ | || | | |+-------------------------->(26) ...to here | 'runlistener': events 27-29 | | 239 | if (nofork < 2) { | | ^ | | | | | (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-39 | | 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 | 'connecttoaddress': events 40-43 | | 156 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (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': event 44 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ^ | | | | | (44) returning to 'runproxy' from 'connecttoaddress' | 'runproxy': events 45-47 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ^ | | | | | (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_41' is non-NULL)... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 175 || if (quitfn) | || ~ | || | | |+---------->(50) ...to here | | (51) following 'true' branch (when 'quitfn_42(D)' is non-NULL)... ->-+ | | | | | | | |+--------------------------------------------------------------------------------+ | 176 || s->quitfn = quitfn; | || ~ | || | | |+------------------------->(52) ...to here |...... | 180 | if (erroutfn) | | ~ | | | | | (53) following 'false' branch (when 'erroutfn_45(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_26 >= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 238 || gnutls_session_set_ptr(s->session, (void *)s); | || ~ | || | | |+------->(58) ...to here |...... | 251 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 258 || s->creds); | || ~ | || | | |+------------------------------------->(60) ...to here | 259 | if (ret < 0) { | | ~ | | | | | (61) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 265 || if (isserver) { | || ~ | || | | |+---------->(62) ...to here | | (63) following 'true' branch (when 'isserver_69(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-67 | |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 | 'runproxy': events 68-70 | | 198 | if (server) | | ^ | | | | | (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-95 | |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')... ->-+ | | | | 'socksetnonblock': events 96-97 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(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': event 104 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ^ | | | | | (104) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 105-109 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ^ | | | | | (105) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 313 || (gnutls_transport_ptr_t)(intptr_t)cryptfd); | || ~ | || | | |+-------------------------------------------------------->(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-120 | |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')... ->-+ | | | | 'socksetnonblock': events 121-122 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(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': event 129 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ^ | | | | | (129) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 130-132 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ^ | | | | | (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-143 | |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')... ->-+ | | | | 'socksetnonblock': events 144-145 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(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': event 152 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ^ | | | | | (152) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 153-155 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ^ | | | | | (153) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 332 || maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1; | || ~ | || | | |+------------------------------------------------->(154) ...to here | 333 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ~ | | | | | (155) following 'true' branch... ->-+ | | | | 'tlssession_mainloop': event 156 | | | | | |+----------------------------------------------------------------------------+ | 334 || while ((!plainEOF || !cryptEOF) && !quit(s)) { | || ^ | || | | |+------------------------------------------->(156) inlined call to 'quit' from 'tlssession_mainloop' | +--> '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': event 160 | | 340 | FD_ZERO(&readfds); | | ^ | | | | | (160) following 'true' branch (when '__i_95 != 16')... ->-+ | | | | 'tlssession_mainloop': events 161-162 | | | | | |+--------------------------------------------------------------------------+ | 340 || FD_ZERO(&readfds); | || ^ | || | | |+--------------->(161) ...to here | 341 | FD_ZERO(&writefds); | | ~ | | | | | (162) following 'true' branch (when '__i_96 != 16')... ->-+ | | | | 'tlssession_mainloop': events 163-166 | | | | | |+--------------------------------------------------------------------------+ | 341 || FD_ZERO(&writefds); | || ^ | || | | |+--------------->(163) ...to here |...... | 347 | if (plainEOF) { | | ~ | | | | | (164) following 'false' branch (when 'plainEOF_88 == 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 '/startdir/src/gnutls-3.8.10/doc/examples' Making all in scripts make[3]: Entering directory '/startdir/src/gnutls-3.8.10/doc/scripts' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/doc/scripts' Making all in credentials make[3]: Entering directory '/startdir/src/gnutls-3.8.10/doc/credentials' Making all in srp make[4]: Entering directory '/startdir/src/gnutls-3.8.10/doc/credentials/srp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/doc/credentials/srp' Making all in x509 make[4]: Entering directory '/startdir/src/gnutls-3.8.10/doc/credentials/x509' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/doc/credentials/x509' make[4]: Entering directory '/startdir/src/gnutls-3.8.10/doc/credentials' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/doc/credentials' make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/doc/credentials' Making all in latex make[3]: Entering directory '/startdir/src/gnutls-3.8.10/doc/latex' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/doc/latex' make[3]: Entering directory '/startdir/src/gnutls-3.8.10/doc' Updating ./version.texi make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/doc' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/doc' make[2]: Entering directory '/startdir/src/gnutls-3.8.10' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10' make[1]: Leaving directory '/startdir/src/gnutls-3.8.10' ==> Starting check()... Making check in gl make[1]: Entering directory '/startdir/src/gnutls-3.8.10/gl' make check-recursive make[2]: Entering directory '/startdir/src/gnutls-3.8.10/gl' make[3]: Entering directory '/startdir/src/gnutls-3.8.10/gl' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/gl' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/gl' make[1]: Leaving directory '/startdir/src/gnutls-3.8.10/gl' Making check in lib make[1]: Entering directory '/startdir/src/gnutls-3.8.10/lib' make check-recursive make[2]: Entering directory '/startdir/src/gnutls-3.8.10/lib' Making check in includes make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/includes' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/includes' Making check in x509 make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/x509' make check-am make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/x509' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/x509' make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/x509' Making check in auth make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/auth' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/auth' Making check in ext make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/ext' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/ext' Making check in algorithms make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/algorithms' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/algorithms' Making check in extras make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/extras' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/extras' Making check in accelerated make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/accelerated' Making check in x86 make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/accelerated/x86' make[4]: Nothing to be done for 'check'. make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/accelerated/x86' make[4]: Entering directory '/startdir/src/gnutls-3.8.10/lib/accelerated' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/accelerated' make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/accelerated' Making check in pkcs11 make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/pkcs11' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/pkcs11' Making check in nettle make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib/nettle' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib/nettle' make[3]: Entering directory '/startdir/src/gnutls-3.8.10/lib' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/lib' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/lib' make[1]: Leaving directory '/startdir/src/gnutls-3.8.10/lib' Making check in extra make[1]: Entering directory '/startdir/src/gnutls-3.8.10/extra' Making check in includes make[2]: Entering directory '/startdir/src/gnutls-3.8.10/extra/includes' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/extra/includes' make[2]: Entering directory '/startdir/src/gnutls-3.8.10/extra' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/extra' make[1]: Leaving directory '/startdir/src/gnutls-3.8.10/extra' Making check in po make[1]: Entering directory '/startdir/src/gnutls-3.8.10/po' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/startdir/src/gnutls-3.8.10/po' Making check in src/gl make[1]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl' make check-recursive make[2]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl' Making check in . make[3]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl' Making check in tests make[3]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make check-recursive make[4]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' Making check in . make[5]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' ## ---------------------------------------------------------------------- ## ## ---------------------------- Gnulib tests ---------------------------- ## ## Please report test failures in this directory to . ## ## ---------------------------------------------------------------------- ## make test-accept test-alignasof test-alloca-opt test-arpa_inet-h test-array_list test-assert test-binary-io test-bind test-bool test-byteswap test-c-ctype test-c-strcasecmp test-c-strncasecmp test-calloc-gnu test-calloc-posix test-canonicalize-lgpl test-cloexec test-close test-connect test-ctype test-dup2 test-endian test-environ test-errno-h test-error test-explicit_bzero test-fcntl-h test-fcntl test-fdopen test-fgetc test-float-h test-fopen-gnu test-fopen test-fpending test-fputc test-fread test-free test-fseek test-fseeko test-fseeko3 test-fseeko4 test-fstat test-ftell test-ftell3 test-ftello test-ftello3 test-ftello4 test-ftruncate test-func test-fwrite test-getaddrinfo test-getcwd-lgpl test-getdelim test-getdtablesize test-getline test-getpeername test-getprogname test-gettext-h test-gettimeofday test-scratch-buffer test-htonl test-ignore-value test-inet_ntop test-inet_pton test-intprops test-inttypes-h test-ioctl test-isblank test-isnand-nolibm test-isnanf-nolibm test-isnanl-nolibm test-langinfo-h test-largefile test-limits-h test-linked_list test-linkedhash_list test-listen test-locale-h test-localename test-rwlock1 test-lock test-lseek test-lstat test-malloc-gnu test-malloc-posix test-malloca test-math-h test-memchr test-memset_explicit test-nanosleep test-netdb-h test-netinet_in-h test-once1 test-once2 test-open test-parse-datetime test-pathmax test-perror test-perror2 test-pipe test-pselect test-pthread-cond test-pthread test-pthread-mutex test-pthread-mutex-type test-pthread-once1 test-pthread-once2 test-pthread-rwlock test-pthread-thread test-pthread_sigmask1 test-pthread_sigmask2 test-putenv test-raise test-random test-random-mt test-random_r test-rawmemchr test-read-file test-readlink test-realloc-posix test-reallocarray test-recv test-recvfrom test-sched-h test-select test-select-fd test-select-stdin test-send test-sendto test-servent test-setenv test-setlocale_null test-setlocale_null-mt-one test-setlocale_null-mt-all test-setlocale_null-unlocked test-setlocale1 test-setlocale2 test-setlocale-w32 test-setsockopt test-shutdown test-signal-h test-signbit test-sigprocmask test-sleep test-snprintf test-sockets test-stat test-stat-time test-stdckdint-h test-stddef-h test-stdint-h test-stdio-h test-stdlib-h test-str_endswith test-str_startswith test-strerror test-strerror_r test-string-h test-strings-h test-strndup test-strnlen test-strverscmp test-symlink test-sys_ioctl-h test-sys_select-h test-sys_socket-h test-sys_stat-h test-sys_time-h test-sys_types-h test-sys_uio-h test-thread_self test-thread_create test-time-h test-time test-gmtime_r test-gmtime_r-mt test-localtime_r test-localtime_r-mt test-timespec test-tls test-unistd-h test-unsetenv test-usleep test-vasnprintf test-vasprintf test-verify test-vsnprintf test-wchar-h test-windows-mutex-type test-windows-recmutex-type test-windows-timedmutex-type test-windows-timedrecmutex-type test-xalloc-die libtests.a make[6]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' CC test-accept.o CC gl_array_list.o CC binary-io.o CC concat-filename.o CC dtotimespec.o CC endian.o CC ioctl.o CC localename.o CC localename-unsafe.o CC localename-table.o CC math.o CC nanosleep.o CC pthread-rwlock.o CC setlocale_null.o CC same-inode.o CC setlocale_null-unlocked.o CC str_endswith.o CC str_startswith.o CC time.o CC timespec-add.o CC timespec-sub.o CC vma-iter.o CC xconcat-filename.o CC xgetcwd.o CC strerror_r.o CC test-alignasof.o CC test-alloca-opt.o CC test-arpa_inet-h.o CC test-array_list.o CC test-assert.o CC test-binary-io.o CC test-bind.o CC test-bool.o CC test-byteswap.o CC test-c-ctype.o CC test-c-strcasecmp.o CC test-c-strncasecmp.o CC test-calloc-gnu.o CC test-calloc-posix.o CC test-canonicalize-lgpl.o CC test-cloexec.o CC test-close.o CC test-connect.o CC test-ctype.o CC test-dup2.o CC test-endian.o CC test-environ.o CC test-errno-h.o CC test-error.o CC test-explicit_bzero.o CC test-fcntl-h.o CC test-fcntl.o CC test-fdopen.o CC test-fgetc.o CC test-float-h.o CC test-fopen-gnu.o CC test-fopen.o CC test-fpending.o CC test-fputc.o CC test-fread.o CC test-free.o CC test-fseek.o CC test-fseeko.o CC test-fseeko3.o CC test-fseeko4.o CC test-fstat.o CC test-ftell.o CC test-ftell3.o CC test-ftello.o CC test-ftello3.o CC test-ftello4.o CC test-ftruncate.o CC test-func.o CC test-fwrite.o CC test-getaddrinfo.o CC test-getcwd-lgpl.o CC test-getdelim.o CC test-getdtablesize.o CC test-getline.o CC test-getpeername.o CC test-getprogname.o CC test-gettext-h.o CC test-gettimeofday.o CC test-scratch-buffer.o CC test-htonl.o CC test-ignore-value.o CC test-inet_ntop.o CC test-inet_pton.o CC test-intprops.o CC test-inttypes-h.o CC test-ioctl.o CC test-isblank.o CC test-isnand-nolibm.o CC test-isnanf-nolibm.o CC test-isnanl-nolibm.o CC test-langinfo-h.o CC test-largefile.o CC test-limits-h.o CC test-linked_list.o CC test-linkedhash_list.o CC test-listen.o CC test-locale-h.o CC test-localename.o CC test-rwlock1.o CC test-lseek.o CC test-lock.o CC test-lstat.o CC test-malloc-gnu.o CC test-malloc-posix.o CC test-malloca.o CC test-math-h.o CC test-memchr.o CC test-memset_explicit.o CC test-nanosleep.o CC test-netdb-h.o CC test-netinet_in-h.o CC test-once.o CC test-open.o CC test-parse-datetime.o CC test-pathmax.o CC test-perror.o CC test-perror2.o CC test-pipe.o CC test-pselect.o CC test-pthread-cond.o CC test-pthread.o CC test-pthread-mutex.o CC test-pthread-mutex-type.o CC test-pthread-once1.o CC test-pthread-once2.o CC test-pthread-rwlock.o CC test-pthread-thread.o CC test-pthread_sigmask1.o CC test-pthread_sigmask2.o CC test-putenv.o CC test-raise.o CC test-random.o CC test-random-mt.o CC test-random_r.o CC test-rawmemchr.o CC test-read-file.o CC test-readlink.o CC test-realloc-posix.o CC test-reallocarray.o CC test-recv.o CC test-recvfrom.o CC test-sched-h.o CC test-select.o CC test-select-fd.o CC test-select-stdin.o CC test-send.o CC test-sendto.o CC test-servent.o CC test-setenv.o CC test-setlocale_null.o CC test-setlocale_null-mt-one.o CC test-setlocale_null-mt-all.o CC test-setlocale_null-unlocked.o CC test-setlocale1.o CC test-setlocale2.o CC test-setlocale-w32.o CC test-setsockopt.o CC test-shutdown.o CC test-signal-h.o CC test-signbit.o CC test-sigprocmask.o CC test-sleep.o CC test-snprintf.o CC test-sockets.o CC test-stat.o CC test-stat-time.o CC test-stdckdint-h.o CC test-stddef-h.o CC test-stdint-h.o CC test-stdio-h.o CC test-stdlib-h.o CC test-str_endswith.o CC test-str_startswith.o CC test-strerror.o CC test-strerror_r.o CC test-string-h.o CC test-strings-h.o CC test-strndup.o CC test-strnlen.o CC test-strverscmp.o CC test-symlink.o CC test-sys_ioctl-h.o CC test-sys_select-h.o CC test-sys_socket-h.o CC test-sys_stat-h.o CC test-sys_time-h.o CC test-sys_types-h.o CC test-sys_uio-h.o CC test-thread_self.o CC test-thread_create.o CC test-time-h.o CC test-time.o CC test-gmtime_r.o CC test-gmtime_r-mt.o CC test-localtime_r.o CC test-localtime_r-mt.o CC test-timespec.o CC test-tls.o CC test-unistd-h.o CC test-unsetenv.o CC test-usleep.o CC test-vasnprintf.o CC test-vasprintf.o CC test-verify.o CC test-vsnprintf.o CC test-windows-mutex-type.o CC test-windows-recmutex-type.o CC test-wchar-h.o CC test-windows-timedmutex-type.o CC test-windows-timedrecmutex-type.o CC test-xalloc-die.o CC glthread/thread.o AR libtests.a CCLD test-accept CCLD test-alloca-opt CCLD test-alignasof CCLD test-arpa_inet-h CCLD test-array_list CCLD test-assert CCLD test-binary-io CCLD test-bind CCLD test-bool CCLD test-byteswap CCLD test-c-ctype CCLD test-c-strcasecmp CCLD test-c-strncasecmp CCLD test-calloc-gnu CCLD test-calloc-posix CCLD test-canonicalize-lgpl CCLD test-cloexec CCLD test-close CCLD test-connect CCLD test-ctype CCLD test-dup2 CCLD test-endian CCLD test-environ CCLD test-errno-h CCLD test-error CCLD test-explicit_bzero CCLD test-fcntl-h CCLD test-fcntl CCLD test-fdopen CCLD test-fgetc CCLD test-float-h CCLD test-fopen-gnu CCLD test-fopen CCLD test-fpending CCLD test-fputc CCLD test-fread CCLD test-free CCLD test-fseek CCLD test-fseeko CCLD test-fseeko3 CCLD test-fseeko4 CCLD test-fstat CCLD test-ftell CCLD test-ftell3 CCLD test-ftello CCLD test-ftello3 CCLD test-ftello4 CCLD test-ftruncate CCLD test-func CCLD test-fwrite CCLD test-getaddrinfo CCLD test-getcwd-lgpl CCLD test-getdelim CCLD test-getdtablesize CCLD test-getline CCLD test-getpeername CCLD test-getprogname CCLD test-gettext-h CCLD test-gettimeofday CCLD test-scratch-buffer CCLD test-htonl CCLD test-ignore-value CCLD test-inet_ntop CCLD test-inet_pton CCLD test-intprops CCLD test-inttypes-h CCLD test-ioctl CCLD test-isblank CCLD test-isnand-nolibm CCLD test-isnanf-nolibm CCLD test-isnanl-nolibm CCLD test-langinfo-h CCLD test-largefile CCLD test-limits-h CCLD test-linked_list CCLD test-linkedhash_list CCLD test-listen CCLD test-locale-h CCLD test-localename CCLD test-rwlock1 CCLD test-lock CCLD test-lseek CCLD test-lstat CCLD test-malloc-gnu CCLD test-malloc-posix CCLD test-malloca CCLD test-math-h CCLD test-memchr CCLD test-memset_explicit CCLD test-nanosleep CCLD test-netdb-h CCLD test-netinet_in-h CCLD test-once1 CCLD test-once2 CCLD test-open CCLD test-parse-datetime CCLD test-pathmax CCLD test-perror CCLD test-perror2 CCLD test-pipe CCLD test-pselect CCLD test-pthread-cond CCLD test-pthread CCLD test-pthread-mutex CCLD test-pthread-mutex-type CCLD test-pthread-once1 CCLD test-pthread-once2 CCLD test-pthread-rwlock CCLD test-pthread-thread CCLD test-pthread_sigmask1 CCLD test-pthread_sigmask2 CCLD test-putenv CCLD test-raise CCLD test-random CCLD test-random-mt CCLD test-random_r CCLD test-rawmemchr CCLD test-read-file CCLD test-readlink CCLD test-realloc-posix CCLD test-reallocarray CCLD test-recv CCLD test-recvfrom CCLD test-sched-h CCLD test-select CCLD test-select-fd CCLD test-select-stdin CCLD test-send CCLD test-sendto CCLD test-servent CCLD test-setenv CCLD test-setlocale_null CCLD test-setlocale_null-mt-one CCLD test-setlocale_null-mt-all CCLD test-setlocale_null-unlocked CCLD test-setlocale1 CCLD test-setlocale2 CCLD test-setlocale-w32 CCLD test-setsockopt CCLD test-shutdown CCLD test-signal-h CCLD test-signbit CCLD test-sigprocmask CCLD test-sleep CCLD test-snprintf CCLD test-sockets CCLD test-stat CCLD test-stat-time CCLD test-stdckdint-h CCLD test-stddef-h CCLD test-stdint-h CCLD test-stdio-h CCLD test-stdlib-h CCLD test-str_endswith CCLD test-str_startswith CCLD test-strerror CCLD test-strerror_r CCLD test-string-h CCLD test-strings-h CCLD test-strndup CCLD test-strnlen CCLD test-strverscmp CCLD test-symlink CCLD test-sys_ioctl-h CCLD test-sys_select-h CCLD test-sys_socket-h CCLD test-sys_stat-h CCLD test-sys_time-h CCLD test-sys_types-h CCLD test-sys_uio-h CCLD test-thread_self CCLD test-thread_create CCLD test-time-h CCLD test-time CCLD test-gmtime_r CCLD test-gmtime_r-mt CCLD test-localtime_r CCLD test-localtime_r-mt CCLD test-timespec CCLD test-tls CCLD test-unistd-h CCLD test-unsetenv CCLD test-usleep CCLD test-vasnprintf CCLD test-vasprintf CCLD test-verify CCLD test-vsnprintf CCLD test-wchar-h CCLD test-windows-mutex-type CCLD test-windows-recmutex-type CCLD test-windows-timedrecmutex-type CCLD test-windows-timedmutex-type make[6]: 'libtests.a' is up to date. CCLD test-xalloc-die make[6]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make check-TESTS make[6]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[7]: Entering directory '/startdir/src/gnutls-3.8.10/src/gl/tests' PASS: test-arpa_inet-h PASS: test-alignasof PASS: test-accept PASS: test-assert PASS: test-array_list PASS: test-bind PASS: test-bool PASS: test-calloc-gnu PASS: test-byteswap PASS: test-calloc-posix PASS: test-c-ctype PASS: test-binary-io.sh PASS: test-close PASS: test-c-strcase.sh PASS: test-cloexec PASS: test-connect PASS: test-canonicalize-lgpl PASS: test-ctype PASS: test-dup2 PASS: test-endian PASS: test-environ PASS: test-errno-h PASS: test-explicit_bzero PASS: test-fcntl-h PASS: test-fcntl PASS: test-fdopen PASS: test-fgetc PASS: test-float-h PASS: test-fopen-gnu PASS: test-fopen PASS: test-fputc PASS: test-fread PASS: test-fpending.sh PASS: test-fseek.sh PASS: test-fseek2.sh PASS: test-fseeko2.sh PASS: test-fstat PASS: test-fseeko.sh PASS: test-fseeko4.sh PASS: test-fseeko3.sh PASS: test-ftell2.sh PASS: test-ftell.sh PASS: test-ftell3 PASS: test-ftello3 PASS: test-ftello2.sh PASS: test-ftello.sh PASS: test-func PASS: test-ftello4.sh PASS: test-ftruncate.sh PASS: test-fwrite PASS: test-getcwd-lgpl PASS: test-getdelim PASS: test-getdtablesize PASS: test-getpeername PASS: test-getline PASS: test-getprogname PASS: test-gettext-h PASS: test-gettimeofday PASS: test-ignore-value PASS: test-htonl PASS: test-error.sh PASS: test-scratch-buffer PASS: test-inet_ntop PASS: test-inet_pton PASS: test-intprops PASS: test-inttypes-h PASS: test-ioctl PASS: test-isblank PASS: test-isnand-nolibm PASS: test-isnanl-nolibm PASS: test-isnanf-nolibm PASS: test-largefile PASS: test-langinfo-h PASS: test-limits-h PASS: test-linked_list PASS: test-locale-h PASS: test-listen PASS: test-linkedhash_list PASS: test-localename PASS: test-malloc-gnu PASS: test-malloc-posix PASS: test-lstat PASS: test-math-h PASS: test-lseek.sh PASS: test-memset_explicit PASS: test-netinet_in-h PASS: test-netdb-h PASS: test-once1 PASS: test-once2 PASS: test-open PASS: test-malloca PASS: test-parse-datetime PASS: test-pathmax PASS: test-perror2 PASS: test-pipe PASS: test-pthread PASS: test-pselect PASS: test-pthread-once1 PASS: test-pthread-mutex-type PASS: test-pthread-thread PASS: test-raise PASS: test-putenv PASS: test-random_r PASS: test-read-file PASS: test-rawmemchr PASS: test-random PASS: test-reallocarray PASS: test-realloc-posix PASS: test-recv PASS: test-readlink PASS: test-recvfrom PASS: test-sched-h PASS: test-select PASS: test-send PASS: test-sendto PASS: test-servent PASS: test-setenv PASS: test-setlocale_null PASS: test-perror.sh SKIP: test-setlocale_null-mt-one SKIP: test-setlocale_null-mt-all PASS: test-setlocale_null-unlocked PASS: test-setsockopt SKIP: test-setlocale1.sh PASS: test-shutdown PASS: test-signal-h SKIP: test-setlocale-w32 PASS: test-signbit PASS: test-setlocale2.sh PASS: test-snprintf PASS: test-sockets PASS: test-stat PASS: test-stdckdint-h PASS: test-stddef-h PASS: test-stdint-h PASS: test-stdio-h PASS: test-memchr PASS: test-stdlib-h PASS: test-str_endswith PASS: test-str_startswith PASS: test-strerror PASS: test-stat-time PASS: test-strerror_r PASS: test-strings-h PASS: test-string-h PASS: test-strndup PASS: test-strverscmp PASS: test-strnlen PASS: test-sys_ioctl-h PASS: test-symlink PASS: test-sys_select-h PASS: test-sys_socket-h PASS: test-sys_stat-h PASS: test-sys_time-h PASS: test-sys_uio-h PASS: test-sys_types-h PASS: test-thread_self PASS: test-time-h PASS: test-gmtime_r PASS: test-thread_create PASS: test-localtime_r PASS: test-timespec PASS: test-unistd-h PASS: test-unsetenv PASS: test-vasnprintf PASS: test-vasprintf PASS: test-free PASS: test-verify PASS: test-alloca-opt PASS: test-vsnprintf PASS: test-wchar-h PASS: test-init.sh SKIP: test-windows-mutex-type SKIP: test-windows-recmutex-type SKIP: test-windows-timedmutex-type SKIP: test-windows-timedrecmutex-type PASS: test-rwlock1 PASS: test-xalloc-die.sh PASS: test-random-mt PASS: test-verify.sh PASS: test-pthread-mutex PASS: test-time PASS: test-pthread-rwlock PASS: test-tls PASS: test-nanosleep PASS: test-select-out.sh PASS: test-gmtime_r-mt PASS: test-localtime_r-mt PASS: test-usleep PASS: test-getaddrinfo PASS: test-pthread-once2 PASS: test-lock PASS: test-pthread_sigmask2 PASS: test-pthread_sigmask1 PASS: test-select-in.sh PASS: test-sleep PASS: test-sigprocmask PASS: test-pthread-cond ============================================================================ Testsuite summary for GnuTLS 3.8.10 ============================================================================ # TOTAL: 198 # PASS: 190 # SKIP: 8 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[7]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[6]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[5]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl/tests' make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl' make[1]: Leaving directory '/startdir/src/gnutls-3.8.10/src/gl' Making check in src make[1]: Entering directory '/startdir/src/gnutls-3.8.10/src' make check-am make[2]: Entering directory '/startdir/src/gnutls-3.8.10/src' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/src' make[1]: Leaving directory '/startdir/src/gnutls-3.8.10/src' Making check in tests make[1]: Entering directory '/startdir/src/gnutls-3.8.10/tests' Making check in . make[2]: Entering directory '/startdir/src/gnutls-3.8.10/tests' make tls13/supported_versions tls13/tls12-no-tls13-exts tls13/post-handshake-with-cert tls13/post-handshake-without-cert tls13/cookie tls13/key_share tls13/prf tls13/prf-early tls13/post-handshake-with-cert-ticket tls12-rollback-detection tls11-rollback-detection tls12-check-rollback-val tls11-check-rollback-val tls13/post-handshake-with-psk tls13/post-handshake-with-cert-auto tls13/anti_replay tls13/compress-cert tls13/compress-cert-neg tls13/compress-cert-neg2 tls13/compress-cert-cli tls13/hello_retry_request tls13/hello_retry_request_resume tls13/hello_retry_request_psk tls13/psk-ext tls13/key_update tls13/key_update_multiple tls13/key_limits tls13/multi-ocsp tls13/ocsp-client tls13/change_cipher_spec tls13-cipher-neg tls13/no-psk-exts tls13/psk-dumbfw tls13/psk-ke-modes tls13-early-start tls13/no-auto-send-ticket mini-record-2 simple gnutls_hmac_fast set_pkcs12_cred cert certuniqueid tls-neg-ext-key mpi certificate_set_x509_crl dn parse_ca x509-dn x509-dn-decode record-sizes hostname-check cve-2008-4989 pkcs12_s2k chainverify missingissuer missingissuer_aia record-sizes-range crq_key_id x509sign-verify sign-verify cve-2009-1415 cve-2009-1416 tls10-server-kx-neg tls11-server-kx-neg tls12-server-kx-neg ssl30-server-kx-neg tls12-cipher-neg tls11-cipher-neg tls10-cipher-neg ssl30-cipher-neg crq_apis init_roundtrip pkcs12_s2k_pem dn2 tls12-rehandshake-cert-3 nul-in-x509-names x509_altname pkcs12_encode mini-x509 gnutls_session_set_id rng-fork mini-eagain-dtls resume-dtls empty_retrieve_function tls13-rehandshake-cert gnutls_ext_raw_parse handshake-large-cert x509cert x509cert-tl x509cert-ct infoaccess mini-dtls-hello-verify sign-verify-ed25519-rfc8080 trustdb-tofu dtls-rehandshake-anon mini-alpn mini-dtls-large mini-termination mini-x509-cas mini-x509-2 pkcs12_simple mini-emsgsize-dtls chainverify-unsorted mini-overhead tls12-ffdhe mini-dtls-heartbeat mini-x509-callbacks key-openssl priorities priorities-groups gnutls_x509_privkey_import gnutls_x509_crt_list_import time x509-server-verify sign-verify-ext4 tls-neg-ext4-key resume-lifetime mini-dtls-srtp rsa-encrypt-decrypt mini-loss-time gnutls-strcodes mini-record mini-dtls-record handshake-timeout mini-record-range cert-status rsa-psk global-init sec-params sign-verify-data fips-test fips-override-test mini-global-load name-constraints x509-extensions long-session-id mini-x509-callbacks-intr mini-dtls-lowmtu set_x509_key_file-late crlverify mini-dtls-discard mini-record-failure openconnect-dtls12 tls12-rehandshake-cert-2 custom-urls set_x509_key_mem set_x509_key_file tls12-rehandshake-cert-auto tls12-rehandshake-set-prio mini-chain-unsorted x509-verify-duplicate x509-verify-with-crl mini-dtls-mtu privkey-verify-broken mini-dtls-record-asym key-import-export priority-set priority-set2 pubkey-import-export sign-is-secure spki spki-abstract rsa-rsa-oaep rsa-rsa-pss mini-dtls-fork mini-key-material x509cert-invalid tls-ext-register tls-supplemental mini-dtls0-9 duplicate-extensions record-retvals mini-server-name tls-etm tls-force-etm x509-cert-callback alerts client-sign-md5-rep tls12-invalid-key-exchanges session-rdn-read tls13-cert-key-exchange x509-cert-callback-ocsp gnutls_ocsp_resp_list_import2 server-sign-md5-rep privkey-keygen mini-tls-nonblock no-signal pkcs7-gen dtls-etm x509sign-verify-rsa x509sign-verify-ecdsa x509sign-verify-gost cipher-alignment oids atfork prf psk-file priority-init2 post-client-hello-change-prio status-request status-request-ok rfc7633-missing sign-verify-ext fallback-scsv pkcs8-key-decode urls dtls-rehandshake-cert rfc7633-ok key-usage-rsa key-usage-ecdhe-rsa mini-session-verify-function auto-verify record-timeouts mini-dtls-hello-verify-48 set-default-prio tls12-anon-upgrade tlsext-decoding rsa-psk-cb gnutls-ids rehandshake-switch-cert rehandshake-switch-cert-allow rehandshake-switch-cert-client rehandshake-switch-cert-client-allow handshake-versions dtls-handshake-versions dtls-max-record tls12-max-record alpn-server-prec ocsp-filename-memleak dh-params rehandshake-ext-secret pcert-list session-export-funcs handshake-false-start version-checks key-material-dtls key-material-set-dtls name-constraints-merge crl-basic crq-basic send-client-cert custom-urls-override hex rehandshake-switch-psk-id rehandshake-switch-srp-id base64 srpbase64 pkcs1-digest-info set_x509_key set_x509_key_file_der set_x509_pkcs12_key crt_apis tls12-cert-key-exchange tls11-cert-key-exchange tls10-cert-key-exchange ssl30-cert-key-exchange dtls12-cert-key-exchange dtls10-cert-key-exchange x509-cert-callback-legacy keylog-env ssl2-hello tlsfeature-ext dtls-rehandshake-cert-2 dtls-session-ticket-lost tlsfeature-crt dtls-rehandshake-cert-3 resume-with-false-start set_x509_key_file_ocsp client-fastopen rng-sigint srp safe-renegotiation/srn0 safe-renegotiation/srn1 safe-renegotiation/srn2 safe-renegotiation/srn3 safe-renegotiation/srn4 safe-renegotiation/srn5 rsa-illegal-import set_x509_ocsp_multi_invalid set_key set_x509_key_file_ocsp_multi2 set_x509_ocsp_multi_unknown set_x509_ocsp_multi_pem tls-ext-not-in-dtls set_key_utf8 set_x509_key_utf8 insecure_key handshake-large-packet client_dsa_key server_ecdsa_key tls-session-ext-register tls-session-supplemental multi-alerts naked-alerts pkcs7-cat-parse set_known_dh_params_x509 set_known_dh_params_anon set_known_dh_params_psk session-tickets-ok session-tickets-missing set_x509_key_file_legacy status-request-ext gnutls_x509_crt_sign gnutls_x509_crq_sign dtls-repro-20170915 rng-no-onload dtls1-2-mtu-check crl_apis cert_verify_inv_utf8 no-extensions no-status-request hostname-check-utf8 pkcs8-key-decode-encrypted priority-mix pkcs7 send-data-before-handshake recv-data-before-handshake crt_inv_write x509sign-verify-error rng-op-nonce rng-op-random rng-op-key x509-dn-decode-compat ip-check mini-x509-ipaddr trust-store base64-raw random-art dhex509self dss-sig-val sign-pk-api tls-session-ext-override record-pad tls13-server-kx-neg gnutls_ext_raw_parse_dtls key-export-pkcs8 null_retrieve_function tls-record-size-limit tls-crt_type-neg resume-with-stek-expiration resume-with-previous-stek rawpk-api tls-record-size-limit-asym dh-compute ecdh-compute sign-verify-data-newapi sign-verify-newapi sign-verify-deterministic iov aead-cipher-vec tls13-without-timeout-func buffer status-request-revoked set_x509_ocsp_multi_cli kdf-api keylog-func handshake-write x509cert-dntypes id-on-xmppAddr tls13-compat-mode ciphersuite-name x509-upnconstraint xts-key-check cipher-padding pkcs7-verify-double-free fips-rsa-sizes tls12-rehandshake-ticket pathbuf tls-force-ems psk-importer privkey-derive dh-compute2 ecdh-compute2 tls-channel-binding strict-der system-prio-file tls-pthread fips-mode-pthread dtls-pthread rng-pthread pkcs11-cert-import-url-exts pkcs11-get-exts pkcs11-get-raw-issuer-exts pkcs11-cert-import-url4-exts pkcs11/pkcs11-chainverify pkcs11/pkcs11-get-issuer pkcs11/pkcs11-is-known pkcs11/pkcs11-combo pkcs11/pkcs11-privkey pkcs11/pkcs11-pubkey-import-rsa pkcs11/pkcs11-pubkey-import-ecdsa pkcs11-import-url-privkey pkcs11-privkey-fork pkcs11/pkcs11-ec-privkey-test pkcs11-privkey-always-auth pkcs11-privkey-export pkcs11/pkcs11-import-with-pin pkcs11/pkcs11-privkey-pthread pkcs11/pkcs11-pin-func pkcs11/pkcs11-obj-import pkcs11-privkey-fork-reinit pkcs11-mechanisms pkcs11-privkey-safenet-always-auth pkcs11/pkcs11-rsa-pss-privkey-test pkcs11/tls-neg-pkcs11-key pkcs11/pkcs11-privkey-generate pkcs11/gnutls_x509_crt_list_import_url pkcs11/gnutls_pcert_list_import_x509_file pkcs11/pkcs11-eddsa-privkey-test pkcs11-token-raw pkcs11-obj-raw pkcs11-import-url-privkey-caps ocsp openssl x509self x509dn anonself pskself pskself2 dhepskself setcredcrash tls12-resume-x509 tls12-resume-psk tls12-resume-anon tls13-resume-x509 tls13-resume-psk tls13-early-data tls13-early-data-neg tls13-early-data-neg2 resume-with-record-size-limit record-sendfile tls13/post-handshake-with-cert-pkcs11 pkcs11/tls-neg-pkcs11-no-key global-init-override pkcs11/distrust-after system-override-hash system-override-sig system-override-sig-tls gnutls_ktls dtls-stress system-override-curves-allowlist protocol-set-allowlist compress-cert-conf rsaes-pkcs1-v1_5 pkcs11-provider/pkcs11-provider-pk pkcs11-provider/pkcs11-provider-sig pkcs11-provider/pkcs11-provider-cipher pkcs11-provider/pkcs11-provider-hmac pkcs11/list-tokens pkcs11/list-objects \ rfc2253-escape-test.sh rsa-md5-collision/rsa-md5-collision.sh systemkey.sh tpm2.sh ktls.sh dtls/dtls.sh dtls/dtls-resume.sh fastopen.sh pkgconfig.sh starttls.sh starttls-ftp.sh starttls-smtp.sh starttls-lmtp.sh starttls-pop3.sh starttls-xmpp.sh starttls-nntp.sh starttls-sieve.sh ocsp-tests/ocsp-tls-connection.sh ocsp-tests/ocsp-must-staple-connection.sh ocsp-tests/ocsp-test.sh cipher-listings.sh sni-hostname.sh server-multi-keys.sh psktool.sh ocsp-tests/ocsp-load-chain.sh gnutls-cli-save-data.sh gnutls-cli-debug.sh sni-resume.sh ocsp-tests/ocsptool.sh cert-reencoding.sh pkcs7-cat.sh long-crl.sh serv-udp.sh logfile-option.sh gnutls-cli-resume.sh profile-tests.sh server-weak-keys.sh ocsp-tests/ocsp-signer-verify.sh cfg-test.sh sanity-lib.sh gnutls-cli-earlydata.sh system-override-sig.sh system-override-hash.sh system-override-versions.sh system-override-invalid.sh system-override-curves.sh system-override-profiles.sh system-override-tls.sh system-override-kx.sh system-override-default-priority-string.sh system-override-sig-tls.sh system-override-hash-filters-prf.sh system-override-sig-allowlist.sh system-override-hash-allowlist.sh system-override-versions-allowlist.sh system-override-curves-allowlist.sh system-override-special-allowlist.sh protocol-set-allowlist.sh system-override-compress-cert.sh system-override-allow-rsa-pkcs1-encrypt.sh pkcs11-provider/test-pkcs11-provider.sh gnutls-cli-self-signed.sh gnutls-cli-invalid-crl.sh gnutls-cli-rawpk.sh dh-fips-approved.sh p11-kit-trust.sh testpkcs11.sh certtool-pkcs11.sh pkcs11-tool.sh p11-kit-load.sh pqc-hybrid-kx.sh make[3]: Entering directory '/startdir/src/gnutls-3.8.10/tests' CC tls13-cipher-neg.o CC tls13-early-start.o CC mini-record-2.o CC simple.o CC gnutls_hmac_fast.o CC set_pkcs12_cred.o CC cert.o CC certuniqueid.o CC tls-neg-ext-key.o CC mpi-mpi.o CC certificate_set_x509_crl.o CC dn.o CC parse_ca.o CC x509-dn.o CC x509-dn-decode.o CC record-sizes.o CC hostname-check.o CC cve-2008-4989.o CC pkcs12_s2k-pkcs12_s2k.o CC chainverify.o CC missingissuer.o CC missingissuer_aia.o CC record-sizes-range.o CC crq_key_id.o CC x509sign-verify.o CC sign-verify.o CC cve-2009-1415.o CC cve-2009-1416.o CC tls10-server-kx-neg.o CC tls11-server-kx-neg.o CC tls12-server-kx-neg.o CC ssl30-server-kx-neg.o CC tls12-cipher-neg.o CC tls11-cipher-neg.o CC tls10-cipher-neg.o CC ssl30-cipher-neg.o CC crq_apis.o CC init_roundtrip.o CC pkcs12_s2k_pem.o CC dn2.o CC tls12-rehandshake-cert-3.o CC nul-in-x509-names.o CC x509_altname.o CC pkcs12_encode.o CC mini-x509.o CC gnutls_session_set_id.o CC rng-fork.o CC mini-eagain-dtls.o CC resume-dtls.o CC empty_retrieve_function.o CC tls13-rehandshake-cert.o CC gnutls_ext_raw_parse.o CC handshake-large-cert.o CC x509cert.o CC x509cert-tl.o CC x509cert-ct.o CC infoaccess.o CC mini-dtls-hello-verify.o CC sign-verify-ed25519-rfc8080.o CC trustdb-tofu.o CC dtls-rehandshake-anon.o CC mini-alpn.o CC mini-dtls-large.o CC mini-termination.o CC mini-x509-cas.o CC mini-x509-2.o CC pkcs12_simple.o CC mini-emsgsize-dtls.o CC chainverify-unsorted.o CC mini-overhead.o x509cert-ct.c: In function 'check_scts': x509cert-ct.c:143:27: warning: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (33 chars into 32 available) [-Wunterminated-string-initialization] 143 | "\xdd\xeb\x1d\x2b\x7a\x0d\x4f\xa6\x20\x8b\x81\xad\x81\x68\x70\x7e" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ x509cert-ct.c:154:27: warning: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (33 chars into 32 available) [-Wunterminated-string-initialization] 154 | "\xa4\xb9\x09\x90\xb4\x18\x58\x14\x87\xbb\x13\xa2\xcc\x67\x70\x0a" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ x509cert-ct.c:165:27: warning: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (33 chars into 32 available) [-Wunterminated-string-initialization] 165 | "\xee\x4b\xbd\xb7\x75\xce\x60\xba\xe1\x42\x69\x1f\xab\xe1\x9e\x66" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ x509cert-ct.c:176:27: warning: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (33 chars into 32 available) [-Wunterminated-string-initialization] 176 | "\xbc\x78\xe1\xdf\xc5\xf6\x3c\x68\x46\x49\x33\x4d\xa1\x0f\xa1\x5f" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ x509cert-tl.c:134:9: warning: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (603 chars into 602 available) [-Wunterminated-string-initialization] 134 | "\x30\x82\x02\x56\x30\x82\x01\xc1\xa0\x03\x02\x01\x02\x02\x04\x46" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC tls12-ffdhe.o CC mini-dtls-heartbeat.o CC mini-x509-callbacks.o CC key-openssl.o CC priorities.o CC priorities-groups.o CC gnutls_x509_privkey_import.o CC gnutls_x509_crt_list_import.o CC time.o CC x509-server-verify.o CC sign-verify-ext4.o CC tls-neg-ext4-key.o CC resume-lifetime.o CC mini-dtls-srtp.o CC rsa-encrypt-decrypt.o CC mini-loss-time.o CC gnutls-strcodes.o CC mini-record.o CC mini-dtls-record.o CC handshake-timeout.o CC mini-record-range.o CC cert-status.o CC rsa-psk.o CC global-init.o CC sec-params.o CC sign-verify-data.o CC fips-test.o CC fips-override-test.o CC mini-global-load.o CC name-constraints.o CC x509-extensions.o CC long-session-id.o CC mini-x509-callbacks-intr.o CC mini-dtls-lowmtu.o CC set_x509_key_file-late.o CC crlverify.o CC mini-dtls-discard.o CC mini-record-failure.o CC openconnect-dtls12.o CC tls12-rehandshake-cert-2.o CC custom-urls.o CC set_x509_key_mem.o CC set_x509_key_file.o CC tls12-rehandshake-cert-auto.o CC tls12-rehandshake-set-prio.o CC mini-chain-unsorted.o CC x509-verify-duplicate.o CC x509-verify-with-crl.o CC mini-dtls-mtu.o CC privkey-verify-broken.o CC mini-dtls-record-asym.o CC key-import-export.o CC priority-set.o CC priority-set2.o CC pubkey-import-export.o CC sign-is-secure.o CC spki.o CC spki-abstract.o CC rsa-rsa-oaep.o CC rsa-rsa-pss.o CC mini-dtls-fork.o CC mini-key-material.o CC x509cert-invalid.o CC tls-ext-register.o CC tls-supplemental.o CC mini-dtls0-9.o CC duplicate-extensions.o CC record-retvals.o CC mini-server-name.o CC tls-etm.o CC tls-force-etm.o CC x509-cert-callback.o CC alerts.o CC client-sign-md5-rep.o CC tls12-invalid-key-exchanges.o CC session-rdn-read.o CC common-cert-key-exchange.o CC tls13-cert-key-exchange.o CC x509-cert-callback-ocsp.o CC gnutls_ocsp_resp_list_import2.o CC server-sign-md5-rep.o CC privkey-keygen.o CC mini-tls-nonblock.o CC no-signal.o CC pkcs7-gen.o CC dtls-etm.o CC x509sign-verify-rsa.o CC x509sign-verify-ecdsa.o CC x509sign-verify-gost.o CC cipher_alignment-cipher-alignment.o CC oids.o CC atfork-atfork.o CC prf.o CC psk-file.o CC priority-init2.o CC post-client-hello-change-prio.o CC status-request.o CC status-request-ok.o CC rfc7633-missing.o CC sign-verify-ext.o CC fallback-scsv.o CC pkcs8-key-decode.o CC urls.o CC dtls-rehandshake-cert.o CC rfc7633-ok.o CC key-usage-rsa.o CC key-usage-ecdhe-rsa.o CC mini-session-verify-function.o CC auto-verify.o CC record-timeouts.o CC mini-dtls-hello-verify-48.o CC set-default-prio.o CC tls12-anon-upgrade.o CC tlsext-decoding.o CC rsa-psk-cb.o CC gnutls-ids.o CC rehandshake-switch-cert.o CC rehandshake-switch-cert-allow.o CC rehandshake-switch-cert-client.o CC rehandshake-switch-cert-client-allow.o CC handshake-versions.o CC dtls-handshake-versions.o CC dtls-max-record.o CC tls12-max-record.o CC alpn-server-prec.o CC ocsp-filename-memleak.o CC dh-params.o CC rehandshake-ext-secret.o CC pcert-list.o CC session-export-funcs.o CC handshake-false-start.o CC version-checks.o CC key-material-dtls.o CC key-material-set-dtls.o CC name_constraints_merge-name-constraints-merge.o CC crl-basic.o CC crq-basic.o CC send-client-cert.o CC custom-urls-override.o CC hex.o CC rehandshake-switch-psk-id.o CC rehandshake-switch-srp-id.o CC base64.o CC srpbase64.o CC pkcs1-digest-info.o CC set_x509_key.o CC set_x509_key_file_der.o CC set_x509_pkcs12_key.o CC crt_apis.o CC tls12-cert-key-exchange.o CC tls11-cert-key-exchange.o CC tls10-cert-key-exchange.o CC ssl30-cert-key-exchange.o CC dtls10-cert-key-exchange.o CC dtls12-cert-key-exchange.o CC x509-cert-callback-legacy.o CC keylog-env.o CC ssl2-hello.o CC tlsfeature-ext.o CC dtls-rehandshake-cert-2.o CC dtls-session-ticket-lost.o CC tlsfeature-crt.o CC dtls-rehandshake-cert-3.o CC resume-with-false-start.o CC set_x509_key_file_ocsp.o CC client-fastopen.o CC rng-sigint.o CC srp.o CC rsa_illegal_import-rsa-illegal-import.o CC set_x509_ocsp_multi_invalid.o CC set_key.o CC set_x509_key_file_ocsp_multi2.o CC set_x509_ocsp_multi_unknown.o CC set_x509_ocsp_multi_pem.o CC tls-ext-not-in-dtls.o CC set_key_utf8.o CC set_x509_key_utf8.o keylog-env.c: In function 'doit': keylog-env.c:170:9: warning: ignoring return value of 'truncate' declared with attribute 'warn_unused_result' [-Wunused-result] 170 | truncate(filename, 0); | ^~~~~~~~~~~~~~~~~~~~~ CC insecure_key.o CC handshake-large-packet.o CC client_dsa_key.o CC server_ecdsa_key.o CC tls-session-ext-register.o CC tls-session-supplemental.o CC multi-alerts.o CC naked-alerts.o CC pkcs7-cat-parse.o CC set_known_dh_params_x509.o CC set_known_dh_params_anon.o CC set_known_dh_params_psk.o CC session-tickets-ok.o CC session-tickets-missing.o CC set_x509_key_file_legacy.o CC status-request-ext.o CC gnutls_x509_crt_sign.o CC gnutls_x509_crq_sign.o CC dtls-repro-20170915.o CC rng-no-onload.o CC dtls1-2-mtu-check.o CC crl_apis.o CC cert_verify_inv_utf8.o CC no-extensions.o CC no-status-request.o CC hostname-check-utf8.o CC pkcs8-key-decode-encrypted.o CC priority-mix.o CC pkcs7.o CC send-data-before-handshake.o CC recv-data-before-handshake.o CC crt_inv_write.o CC x509sign-verify-error.o CC rng-op-nonce.o CC rng-op-random.o CC rng-op-key.o CC x509-dn-decode-compat.o CC ip-check.o CC mini-x509-ipaddr.o CC trust-store.o CC base64-raw.o CC random-art.o CC dhex509self.o CC dss-sig-val.o CC sign-pk-api.o CC tls-session-ext-override.o CC record-pad.o CC tls13-server-kx-neg.o CC gnutls_ext_raw_parse_dtls.o CC key-export-pkcs8.o CC null_retrieve_function.o CC tls-record-size-limit.o CC tls-crt_type-neg.o CC resume-with-stek-expiration.o CC resume-with-previous-stek.o CC rawpk-api.o CC tls-record-size-limit-asym.o CC dh-compute.o CC ecdh-compute.o CC sign-verify-data-newapi.o CC sign-verify-newapi.o CC sign-verify-deterministic.o CC iov-iov.o CC aead-cipher-vec.o CC tls13-without-timeout-func.o CC buffer-buffer.o CC status-request-revoked.o CC set_x509_ocsp_multi_cli.o CC kdf-api.o CC keylog-func.o CC handshake-write.o CC x509cert-dntypes.o CC id-on-xmppAddr.o CC tls13-compat-mode.o CC ciphersuite-name.o CC x509-upnconstraint.o CC xts-key-check.o CC cipher-padding.o CC pkcs7-verify-double-free.o CC fips-rsa-sizes.o CC tls12-rehandshake-ticket.o CC pathbuf-pathbuf.o CC tls-force-ems.o CC psk-importer.o CC privkey-derive.o CC dh-compute2.o CC ecdh-compute2.o CC tls-channel-binding.o CC strict-der.o CC system-prio-file.o CC tls-pthread.o CC fips-mode-pthread.o CC dtls-pthread.o CC rng-pthread.o CC pkcs11/pkcs11-cert-import-url-exts.o CC pkcs11/pkcs11-get-exts.o CC pkcs11/pkcs11-get-raw-issuer-exts.o CC pkcs11/pkcs11-cert-import-url4-exts.o CC pkcs11/pkcs11-chainverify.o CC pkcs11/pkcs11-get-issuer.o CC pkcs11/pkcs11-is-known.o CC pkcs11/pkcs11-combo.o CC pkcs11/pkcs11-privkey.o CC pkcs11/pkcs11-pubkey-import-rsa.o CC pkcs11/pkcs11-pubkey-import-ecdsa.o CC pkcs11/pkcs11-import-url-privkey.o CC pkcs11/pkcs11-privkey-fork.o CC pkcs11/pkcs11-ec-privkey-test.o CC pkcs11/pkcs11-privkey-always-auth.o CC pkcs11/pkcs11-privkey-export.o CC pkcs11/pkcs11-import-with-pin.o CC pkcs11/pkcs11-privkey-pthread.o CC pkcs11/pkcs11-pin-func.o CC pkcs11/pkcs11-obj-import.o CC pkcs11/pkcs11-privkey-fork-reinit.o pkcs11/pkcs11-is-known.c: In function 'doit': pkcs11/pkcs11-is-known.c:383:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 383 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-privkey.c: In function 'doit': pkcs11/pkcs11-privkey.c:156:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 156 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-is-known.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-mechanisms.o In file included from pkcs11/pkcs11-privkey.c:36: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-chainverify.c: In function 'doit': pkcs11/pkcs11-chainverify.c:111:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 111 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-get-issuer.c: In function 'doit': pkcs11/pkcs11-get-issuer.c:133:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 133 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-combo.c: In function 'doit': pkcs11/pkcs11-combo.c:250:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 250 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-chainverify.c:35: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-privkey-safenet-always-auth.o In file included from pkcs11/pkcs11-get-issuer.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-combo.c:41: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-rsa-pss-privkey-test.o CC pkcs11/tls-neg-pkcs11-key.o In file included from pkcs11/pkcs11-pubkey-import-ecdsa.c:35: pkcs11/pkcs11-pubkey-import.c: In function 'try': pkcs11/pkcs11-pubkey-import.c:99:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 99 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-pubkey-import-ecdsa.c:30: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-privkey-generate.o In file included from pkcs11/pkcs11-pubkey-import-rsa.c:34: pkcs11/pkcs11-pubkey-import.c: In function 'try': pkcs11/pkcs11-pubkey-import.c:99:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 99 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-pubkey-import.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/gnutls_x509_crt_list_import_url.o CC pkcs11/gnutls_pcert_list_import_x509_file.o pkcs11/pkcs11-ec-privkey-test.c: In function 'doit': pkcs11/pkcs11-ec-privkey-test.c:108:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 108 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-eddsa-privkey-test.o In file included from pkcs11/pkcs11-ec-privkey-test.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC pkcs11/pkcs11-token-raw.o CC pkcs11/pkcs11-obj-raw.o CC pkcs11/import_url_privkey_caps-pkcs11-import-url-privkey.o CC ocsp.o CC openssl.o CC x509self.o pkcs11/pkcs11-import-with-pin.c: In function 'doit': pkcs11/pkcs11-import-with-pin.c:108:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 108 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-import-with-pin.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC x509dn.o CC anonself.o CC pskself.o CC pskself2.o CC dhepskself.o pkcs11/pkcs11-obj-import.c: In function 'doit': pkcs11/pkcs11-obj-import.c:99:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 99 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-obj-import.c:40: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC setcredcrash.o pkcs11/pkcs11-rsa-pss-privkey-test.c: In function 'doit': pkcs11/pkcs11-rsa-pss-privkey-test.c:124:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 124 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-rsa-pss-privkey-test.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/pkcs11-privkey-generate.c: In function 'doit': pkcs11/pkcs11-privkey-generate.c:159:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 159 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-privkey-generate.c:50: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC tls12_resume_x509-resume.o CC tls12_resume_psk-resume.o pkcs11/tls-neg-pkcs11-key.c: In function 'doit': pkcs11/tls-neg-pkcs11-key.c:454:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 454 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/tls-neg-pkcs11-key.c:45: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC tls12_resume_anon-resume.o pkcs11/gnutls_x509_crt_list_import_url.c: In function 'doit': pkcs11/gnutls_x509_crt_list_import_url.c:159:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 159 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/gnutls_x509_crt_list_import_url.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC tls13_resume_x509-resume.o pkcs11/gnutls_pcert_list_import_x509_file.c: In function 'doit': pkcs11/gnutls_pcert_list_import_x509_file.c:179:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 179 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/gnutls_pcert_list_import_x509_file.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC tls13_resume_psk-resume.o pkcs11/pkcs11-eddsa-privkey-test.c: In function 'doit': pkcs11/pkcs11-eddsa-privkey-test.c:264:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 264 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/pkcs11-eddsa-privkey-test.c:37: pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC tls13-early-data.o CC tls13-early-data-neg.o CC tls13-early-data-neg2.o CC resume-with-record-size-limit.o CC record-sendfile.o CC tls13/post-handshake-with-cert-pkcs11.o CC pkcs11/tls-neg-pkcs11-no-key.o CC global-init-override.o CC pkcs11/distrust-after.o CC system-override-hash.o CC system-override-sig.o CC system-override-sig-tls.o CC gnutls_ktls.o CC system-override-curves-allowlist.o CC protocol-set-allowlist.o CC tls13/compress-cert-conf.o CC rsaes-pkcs1-v1_5.o CC pkcs11/list-tokens.o CC pkcs11/list-objects.o make[3]: Nothing to be done for 'rfc2253-escape-test.sh'. make[3]: Nothing to be done for 'rsa-md5-collision/rsa-md5-collision.sh'. make[3]: Nothing to be done for 'systemkey.sh'. make[3]: Nothing to be done for 'tpm2.sh'. make[3]: Nothing to be done for 'ktls.sh'. make[3]: Nothing to be done for 'dtls/dtls.sh'. make[3]: Nothing to be done for 'dtls/dtls-resume.sh'. make[3]: Nothing to be done for 'fastopen.sh'. make[3]: Nothing to be done for 'pkgconfig.sh'. make[3]: Nothing to be done for 'starttls.sh'. make[3]: Nothing to be done for 'starttls-ftp.sh'. make[3]: Nothing to be done for 'starttls-smtp.sh'. make[3]: Nothing to be done for 'starttls-lmtp.sh'. make[3]: Nothing to be done for 'starttls-pop3.sh'. make[3]: Nothing to be done for 'starttls-xmpp.sh'. make[3]: Nothing to be done for 'starttls-nntp.sh'. make[3]: Nothing to be done for 'starttls-sieve.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-tls-connection.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-must-staple-connection.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-test.sh'. make[3]: Nothing to be done for 'cipher-listings.sh'. make[3]: Nothing to be done for 'sni-hostname.sh'. make[3]: Nothing to be done for 'server-multi-keys.sh'. make[3]: Nothing to be done for 'psktool.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-load-chain.sh'. make[3]: Nothing to be done for 'gnutls-cli-save-data.sh'. make[3]: Nothing to be done for 'gnutls-cli-debug.sh'. make[3]: Nothing to be done for 'sni-resume.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsptool.sh'. make[3]: Nothing to be done for 'cert-reencoding.sh'. make[3]: Nothing to be done for 'pkcs7-cat.sh'. make[3]: Nothing to be done for 'long-crl.sh'. make[3]: Nothing to be done for 'serv-udp.sh'. make[3]: Nothing to be done for 'logfile-option.sh'. make[3]: Nothing to be done for 'gnutls-cli-resume.sh'. make[3]: Nothing to be done for 'profile-tests.sh'. make[3]: Nothing to be done for 'server-weak-keys.sh'. make[3]: Nothing to be done for 'ocsp-tests/ocsp-signer-verify.sh'. make[3]: Nothing to be done for 'cfg-test.sh'. make[3]: Nothing to be done for 'sanity-lib.sh'. make[3]: Nothing to be done for 'gnutls-cli-earlydata.sh'. make[3]: Nothing to be done for 'system-override-sig.sh'. make[3]: Nothing to be done for 'system-override-hash.sh'. make[3]: Nothing to be done for 'system-override-versions.sh'. make[3]: Nothing to be done for 'system-override-invalid.sh'. make[3]: Nothing to be done for 'system-override-curves.sh'. make[3]: Nothing to be done for 'system-override-profiles.sh'. make[3]: Nothing to be done for 'system-override-tls.sh'. make[3]: Nothing to be done for 'system-override-kx.sh'. make[3]: Nothing to be done for 'system-override-default-priority-string.sh'. make[3]: Nothing to be done for 'system-override-sig-tls.sh'. make[3]: Nothing to be done for 'system-override-hash-filters-prf.sh'. make[3]: Nothing to be done for 'system-override-sig-allowlist.sh'. make[3]: Nothing to be done for 'system-override-hash-allowlist.sh'. make[3]: Nothing to be done for 'system-override-versions-allowlist.sh'. make[3]: Nothing to be done for 'system-override-curves-allowlist.sh'. make[3]: Nothing to be done for 'system-override-special-allowlist.sh'. make[3]: Nothing to be done for 'protocol-set-allowlist.sh'. make[3]: Nothing to be done for 'system-override-compress-cert.sh'. make[3]: Nothing to be done for 'system-override-allow-rsa-pkcs1-encrypt.sh'. make[3]: Nothing to be done for 'pkcs11-provider/test-pkcs11-provider.sh'. make[3]: Nothing to be done for 'gnutls-cli-self-signed.sh'. make[3]: Nothing to be done for 'gnutls-cli-invalid-crl.sh'. make[3]: Nothing to be done for 'gnutls-cli-rawpk.sh'. make[3]: Nothing to be done for 'dh-fips-approved.sh'. make[3]: Nothing to be done for 'p11-kit-trust.sh'. make[3]: Nothing to be done for 'testpkcs11.sh'. make[3]: Nothing to be done for 'certtool-pkcs11.sh'. make[3]: Nothing to be done for 'pkcs11-tool.sh'. make[3]: Nothing to be done for 'p11-kit-load.sh'. make[3]: Nothing to be done for 'pqc-hybrid-kx.sh'. tls13/post-handshake-with-cert-pkcs11.c: In function 'doit': tls13/post-handshake-with-cert-pkcs11.c:460:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 460 | system(buf); | ^~~~~~~~~~~ In file included from tls13/post-handshake-with-cert-pkcs11.c:52: ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/tls-neg-pkcs11-no-key.c: In function 'doit': pkcs11/tls-neg-pkcs11-no-key.c:345:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 345 | system(buf); | ^~~~~~~~~~~ CC tls13/supported_versions.o In file included from pkcs11/tls-neg-pkcs11-no-key.c:52: ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ pkcs11/distrust-after.c: In function 'doit': pkcs11/distrust-after.c:242:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 242 | system(buf); | ^~~~~~~~~~~ pkcs11/distrust-after.c:251:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 251 | system(buf); | ^~~~~~~~~~~ pkcs11/distrust-after.c:265:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 265 | system(buf); | ^~~~~~~~~~~ pkcs11/distrust-after.c:274:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 274 | system(buf); | ^~~~~~~~~~~ In file included from pkcs11/distrust-after.c:45: ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:115:9: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result] 115 | system(buf); | ^~~~~~~~~~~ CC tls13/tls12-no-tls13-exts.o CC tls13/post-handshake-with-cert.o CC tls13/post-handshake-without-cert.o CC tls13/cookie.o protocol-set-allowlist.c: In function 'doit': protocol-set-allowlist.c:228:17: warning: ignoring return value of 'fgets' declared with attribute 'warn_unused_result' [-Wunused-result] 228 | fgets(cmd_buf, MAX_CMD_LEN, stdin); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC tls13/key_share.o CC tls13/prf.o CC tls13/prf-early.o CC tls13/post-handshake-with-cert-ticket.o CC tls13/tls12_rollback_detection-rnd-rollback-detection.o CC tls13/tls11_rollback_detection-rnd-rollback-detection.o CC tls13/tls12_check_rollback_val-rnd-check-rollback-val.o CC tls13/tls11_check_rollback_val-rnd-check-rollback-val.o CC tls13/post-handshake-with-psk.o CC tls13/post-handshake-with-cert-auto.o CC tls13/anti_replay-anti_replay.o CC tls13/compress-cert.o CC tls13/compress-cert-neg.o CC tls13/compress-cert-neg2.o CC tls13/compress-cert-cli.o CC tls13/hello_retry_request.o CC tls13/hello_retry_request_resume.o CC tls13/hello_retry_request_psk.o CC tls13/psk-ext.o CC tls13/key_update.o CC tls13/key_update_multiple.o CC tls13/key_limits.o CC tls13/multi-ocsp.o CC tls13/ocsp-client.o CC tls13/change_cipher_spec.o CCLD tls13-cipher-neg CC tls13/no-psk-exts.o CC tls13/psk-dumbfw.o CC tls13/psk-ke-modes.o CCLD tls13-early-start CC tls13/no-auto-send-ticket.o CCLD mini-record-2 CCLD simple CCLD gnutls_hmac_fast CCLD set_pkcs12_cred CCLD cert CCLD certuniqueid CCLD tls-neg-ext-key CCLD mpi CCLD certificate_set_x509_crl CCLD dn CCLD parse_ca CCLD x509-dn CCLD x509-dn-decode CCLD record-sizes CCLD hostname-check CCLD cve-2008-4989 CCLD pkcs12_s2k CCLD chainverify CCLD missingissuer CCLD missingissuer_aia CCLD record-sizes-range CCLD crq_key_id CCLD x509sign-verify CCLD sign-verify CCLD cve-2009-1415 CCLD cve-2009-1416 CCLD tls10-server-kx-neg CCLD tls11-server-kx-neg CCLD tls12-server-kx-neg CCLD ssl30-server-kx-neg CCLD tls12-cipher-neg CCLD tls11-cipher-neg CCLD tls10-cipher-neg CCLD ssl30-cipher-neg CCLD crq_apis CCLD init_roundtrip CCLD pkcs12_s2k_pem CCLD dn2 CCLD tls12-rehandshake-cert-3 CCLD nul-in-x509-names crq_key_id.c: In function 'doit.part.0': crq_key_id.c:180:20: warning: check of 'pkey_key_id_18' for NULL after already dereferencing it [-Wanalyzer-deref-before-check] 180 | if (pkey_key_id) { | ^ 'doit': events 1-3 | | 40 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 57 | if (ret < 0) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 60 || gnutls_global_set_log_function(tls_log_func); | || ~ | || | | |+------->(3) ...to here | 'doit': event 4 | |lto1: | (4): calling 'doit.part.0' from 'doit' | +--> 'doit.part.0': events 5-36 | | 40 | void doit(void) | | ^ | | | | | (5) entry to 'doit.part.0' |...... | 64 | for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; | | ~ | | | | | (6) following 'true' branch (when 'algorithm_8 != 3')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------------------------+ | 70 || ret = gnutls_x509_crq_init(&crq); | || ~ | || | | |+--------------------->(7) ...to here | 71 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------------+ | 75 || ret = gnutls_x509_privkey_init(&pkey); | || ~ | || | | |+--------------------->(9) ...to here | 76 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 81 || ret = gnutls_privkey_init(&abs_pkey); | || ~ | || | | |+--------------------->(11) ...to here | 82 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 87 || ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0); | || ~ | || | | |+--------------------->(13) ...to here | 88 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 92 || } else if (debug) { | || ~ | || | | |+-------------------------->(15) ...to here |...... | 100 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 105 || pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len); | || ~ | || | | |+----------------------------->(17) ...to here | | (18) allocated here |...... | 108 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 113 || ret = gnutls_x509_crq_set_version(crq, 1); | || ~ | || | | |+--------------------->(20) ...to here | 114 | if (ret < 0) { | | ~ | | | | | (21) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 119 || ret = gnutls_x509_crq_set_key(crq, pkey); | || ~ | || | | |+--------------------->(22) ...to here | 120 | if (ret < 0) { | | ~ | | | | | (23) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 125 || ret = gnutls_x509_crq_set_dn_by_oid( | || ~ | || | | |+--------------------->(24) ...to here | 126 | crq, GNUTLS_OID_X520_COMMON_NAME, 0, "CN-Test", 7); | 127 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 132 || ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0); | || ~ | || | | |+--------------------->(26) ...to here | 133 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 138 || ret = gnutls_x509_crq_privkey_sign(crq, abs_pkey, | || ~ | || | | |+--------------------->(28) ...to here | 139 | GNUTLS_DIG_SHA256, 0); | 140 | if (ret < 0) { | | ~ | | | | | (29) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 145 || ret = gnutls_x509_crq_verify(crq, 0); | || ~ | || | | |+--------------------->(30) ...to here | 146 | if (ret < 0) { | | ~ | | | | | (31) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 151 || crq_key_id_len = 0; | || ~ | || | | |+------------------------------>(32) ...to here |...... | 154 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 159 || crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len); | || ~ | || | | |+---------------------------->(34) ...to here |...... | 162 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (35) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 167 || if (crq_key_id_len == pkey_key_id_len) { | || ~ | || | | |+---------------------------------->(36) ...to here | 'doit.part.0': events 37-41 | | 167 | if (crq_key_id_len == pkey_key_id_len) { | | ^ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 168 || ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len); | || ~ | || | | |+----------------------------->(38) ...to here | | (39) pointer 'pkey_key_id_18' is dereferenced here | 169 | if (ret == 0) { | | ~ | | | | | (40) following 'true' branch (when 'ret_53 == 0')... ->-+ | | | | | | | |+-----------------------------------------------------------------------------------+ | 170 || if (debug) | || ~ | || | | |+----------------------------------->(41) ...to here | 'doit.part.0': events 42-44 | | 170 | if (debug) | | ^ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 180 || if (pkey_key_id) { | || ~ | || | | |+------------------>(43) ...to here | | (44) pointer 'pkey_key_id_18' is checked for NULL here but it was already dereferenced at (39) | crq_key_id.c:180:20: warning: check of 'pkey_key_id_18' for NULL after already dereferencing it [-Wanalyzer-deref-before-check] 180 | if (pkey_key_id) { | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-5 | |crq_key_id.c:40:6: | 40 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 57 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 60 || gnutls_global_set_log_function(tls_log_func); | || ~ | || | | |+------->(5) ...to here | 'doit': event 6 | |lto1: | (6): calling 'doit.part.0' from 'doit' | +--> 'doit.part.0': events 7-38 | | 40 | void doit(void) | | ^ | | | | | (7) entry to 'doit.part.0' |...... | 64 | for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; | | ~ | | | | | (8) following 'true' branch (when 'algorithm_8 != 3')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------------------------+ | 70 || ret = gnutls_x509_crq_init(&crq); | || ~ | || | | |+--------------------->(9) ...to here | 71 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 75 || ret = gnutls_x509_privkey_init(&pkey); | || ~ | || | | |+--------------------->(11) ...to here | 76 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 81 || ret = gnutls_privkey_init(&abs_pkey); | || ~ | || | | |+--------------------->(13) ...to here | 82 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 87 || ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0); | || ~ | || | | |+--------------------->(15) ...to here | 88 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 92 || } else if (debug) { | || ~ | || | | |+-------------------------->(17) ...to here |...... | 100 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 105 || pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len); | || ~ | || | | |+----------------------------->(19) ...to here | | (20) allocated here |...... | 108 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (21) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 113 || ret = gnutls_x509_crq_set_version(crq, 1); | || ~ | || | | |+--------------------->(22) ...to here | 114 | if (ret < 0) { | | ~ | | | | | (23) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 119 || ret = gnutls_x509_crq_set_key(crq, pkey); | || ~ | || | | |+--------------------->(24) ...to here | 120 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 125 || ret = gnutls_x509_crq_set_dn_by_oid( | || ~ | || | | |+--------------------->(26) ...to here | 126 | crq, GNUTLS_OID_X520_COMMON_NAME, 0, "CN-Test", 7); | 127 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 132 || ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0); | || ~ | || | | |+--------------------->(28) ...to here | 133 | if (ret < 0) { | | ~ | | | | | (29) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 138 || ret = gnutls_x509_crq_privkey_sign(crq, abs_pkey, | || ~ | || | | |+--------------------->(30) ...to here | 139 | GNUTLS_DIG_SHA256, 0); | 140 | if (ret < 0) { | | ~ | | | | | (31) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 145 || ret = gnutls_x509_crq_verify(crq, 0); | || ~ | || | | |+--------------------->(32) ...to here | 146 | if (ret < 0) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 151 || crq_key_id_len = 0; | || ~ | || | | |+------------------------------>(34) ...to here |...... | 154 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (35) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 159 || crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len); | || ~ | || | | |+---------------------------->(36) ...to here |...... | 162 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (37) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 167 || if (crq_key_id_len == pkey_key_id_len) { | || ~ | || | | |+---------------------------------->(38) ...to here | 'doit.part.0': events 39-43 | | 167 | if (crq_key_id_len == pkey_key_id_len) { | | ^ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 168 || ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len); | || ~ | || | | |+----------------------------->(40) ...to here | | (41) pointer 'pkey_key_id_18' is dereferenced here | 169 | if (ret == 0) { | | ~ | | | | | (42) following 'true' branch (when 'ret_53 == 0')... ->-+ | | | | | | | |+-----------------------------------------------------------------------------------+ | 170 || if (debug) | || ~ | || | | |+----------------------------------->(43) ...to here | 'doit.part.0': events 44-46 | | 170 | if (debug) | | ^ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 180 || if (pkey_key_id) { | || ~ | || | | |+------------------>(45) ...to here | | (46) pointer 'pkey_key_id_18' is checked for NULL here but it was already dereferenced at (41) | crq_key_id.c:185:20: warning: check of 'crq_key_id_47' for NULL after already dereferencing it [-Wanalyzer-deref-before-check] 185 | if (crq_key_id) { | ^ 'doit': events 1-3 | | 40 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 57 | if (ret < 0) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 60 || gnutls_global_set_log_function(tls_log_func); | || ~ | || | | |+------->(3) ...to here | 'doit': event 4 | |lto1: | (4): calling 'doit.part.0' from 'doit' | +--> 'doit.part.0': events 5-36 | | 40 | void doit(void) | | ^ | | | | | (5) entry to 'doit.part.0' |...... | 64 | for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; | | ~ | | | | | (6) following 'true' branch (when 'algorithm_8 != 3')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------------------------+ | 70 || ret = gnutls_x509_crq_init(&crq); | || ~ | || | | |+--------------------->(7) ...to here | 71 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------------+ | 75 || ret = gnutls_x509_privkey_init(&pkey); | || ~ | || | | |+--------------------->(9) ...to here | 76 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 81 || ret = gnutls_privkey_init(&abs_pkey); | || ~ | || | | |+--------------------->(11) ...to here | 82 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 87 || ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0); | || ~ | || | | |+--------------------->(13) ...to here | 88 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 92 || } else if (debug) { | || ~ | || | | |+-------------------------->(15) ...to here |...... | 100 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 105 || pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len); | || ~ | || | | |+----------------------------->(17) ...to here |...... | 108 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 113 || ret = gnutls_x509_crq_set_version(crq, 1); | || ~ | || | | |+--------------------->(19) ...to here | 114 | if (ret < 0) { | | ~ | | | | | (20) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 119 || ret = gnutls_x509_crq_set_key(crq, pkey); | || ~ | || | | |+--------------------->(21) ...to here | 120 | if (ret < 0) { | | ~ | | | | | (22) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 125 || ret = gnutls_x509_crq_set_dn_by_oid( | || ~ | || | | |+--------------------->(23) ...to here | 126 | crq, GNUTLS_OID_X520_COMMON_NAME, 0, "CN-Test", 7); | 127 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 132 || ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0); | || ~ | || | | |+--------------------->(25) ...to here | 133 | if (ret < 0) { | | ~ | | | | | (26) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 138 || ret = gnutls_x509_crq_privkey_sign(crq, abs_pkey, | || ~ | || | | |+--------------------->(27) ...to here | 139 | GNUTLS_DIG_SHA256, 0); | 140 | if (ret < 0) { | | ~ | | | | | (28) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 145 || ret = gnutls_x509_crq_verify(crq, 0); | || ~ | || | | |+--------------------->(29) ...to here | 146 | if (ret < 0) { | | ~ | | | | | (30) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 151 || crq_key_id_len = 0; | || ~ | || | | |+------------------------------>(31) ...to here |...... | 154 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (32) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 159 || crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len); | || ~ | || | | |+---------------------------->(33) ...to here | | (34) allocated here |...... | 162 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (35) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 167 || if (crq_key_id_len == pkey_key_id_len) { | || ~ | || | | |+---------------------------------->(36) ...to here | 'doit.part.0': events 37-41 | | 167 | if (crq_key_id_len == pkey_key_id_len) { | | ^ | | | | | (37) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 168 || ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len); | || ~ | || | | |+----------------------------->(38) ...to here | | (39) pointer 'crq_key_id_47' is dereferenced here | 169 | if (ret == 0) { | | ~ | | | | | (40) following 'true' branch (when 'ret_53 == 0')... ->-+ | | | | | | | |+-----------------------------------------------------------------------------------+ | 170 || if (debug) | || ~ | || | | |+----------------------------------->(41) ...to here | 'doit.part.0': events 42-46 | | 170 | if (debug) | | ^ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 180 || if (pkey_key_id) { | || ~ | || | | |+------------------>(43) ...to here | | (44) following 'false' branch (when 'pkey_key_id_18' is NULL)... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------+ | 185 || if (crq_key_id) { | || ~ | || | | |+------------------>(45) ...to here | | (46) pointer 'crq_key_id_47' is checked for NULL here but it was already dereferenced at (39) | crq_key_id.c:185:20: warning: check of 'crq_key_id_47' for NULL after already dereferencing it [-Wanalyzer-deref-before-check] 185 | if (crq_key_id) { | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-5 | |crq_key_id.c:40:6: | 40 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 57 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 60 || gnutls_global_set_log_function(tls_log_func); | || ~ | || | | |+------->(5) ...to here | 'doit': event 6 | |lto1: | (6): calling 'doit.part.0' from 'doit' | +--> 'doit.part.0': events 7-38 | | 40 | void doit(void) | | ^ | | | | | (7) entry to 'doit.part.0' |...... | 64 | for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; | | ~ | | | | | (8) following 'true' branch (when 'algorithm_8 != 3')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------------------------+ | 70 || ret = gnutls_x509_crq_init(&crq); | || ~ | || | | |+--------------------->(9) ...to here | 71 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 75 || ret = gnutls_x509_privkey_init(&pkey); | || ~ | || | | |+--------------------->(11) ...to here | 76 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 81 || ret = gnutls_privkey_init(&abs_pkey); | || ~ | || | | |+--------------------->(13) ...to here | 82 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 87 || ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0); | || ~ | || | | |+--------------------->(15) ...to here | 88 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 92 || } else if (debug) { | || ~ | || | | |+-------------------------->(17) ...to here |...... | 100 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 105 || pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len); | || ~ | || | | |+----------------------------->(19) ...to here |...... | 108 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (20) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 113 || ret = gnutls_x509_crq_set_version(crq, 1); | || ~ | || | | |+--------------------->(21) ...to here | 114 | if (ret < 0) { | | ~ | | | | | (22) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 119 || ret = gnutls_x509_crq_set_key(crq, pkey); | || ~ | || | | |+--------------------->(23) ...to here | 120 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 125 || ret = gnutls_x509_crq_set_dn_by_oid( | || ~ | || | | |+--------------------->(25) ...to here | 126 | crq, GNUTLS_OID_X520_COMMON_NAME, 0, "CN-Test", 7); | 127 | if (ret < 0) { | | ~ | | | | | (26) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 132 || ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0); | || ~ | || | | |+--------------------->(27) ...to here | 133 | if (ret < 0) { | | ~ | | | | | (28) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 138 || ret = gnutls_x509_crq_privkey_sign(crq, abs_pkey, | || ~ | || | | |+--------------------->(29) ...to here | 139 | GNUTLS_DIG_SHA256, 0); | 140 | if (ret < 0) { | | ~ | | | | | (30) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 145 || ret = gnutls_x509_crq_verify(crq, 0); | || ~ | || | | |+--------------------->(31) ...to here | 146 | if (ret < 0) { | | ~ | | | | | (32) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 151 || crq_key_id_len = 0; | || ~ | || | | |+------------------------------>(33) ...to here |...... | 154 | if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) { | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 159 || crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len); | || ~ | || | | |+---------------------------->(35) ...to here | | (36) allocated here |...... | 162 | if (ret != GNUTLS_E_SUCCESS) { | | ~ | | | | | (37) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 167 || if (crq_key_id_len == pkey_key_id_len) { | || ~ | || | | |+---------------------------------->(38) ...to here | 'doit.part.0': events 39-43 | | 167 | if (crq_key_id_len == pkey_key_id_len) { | | ^ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 168 || ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len); | || ~ | || | | |+----------------------------->(40) ...to here | | (41) pointer 'crq_key_id_47' is dereferenced here | 169 | if (ret == 0) { | | ~ | | | | | (42) following 'true' branch (when 'ret_53 == 0')... ->-+ | | | | | | | |+-----------------------------------------------------------------------------------+ | 170 || if (debug) | || ~ | || | | |+----------------------------------->(43) ...to here | 'doit.part.0': events 44-48 | | 170 | if (debug) | | ^ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 180 || if (pkey_key_id) { | || ~ | || | | |+------------------>(45) ...to here | | (46) following 'false' branch (when 'pkey_key_id_18' is NULL)... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------+ | 185 || if (crq_key_id) { | || ~ | || | | |+------------------>(47) ...to here | | (48) pointer 'crq_key_id_47' is checked for NULL here but it was already dereferenced at (41) | CCLD x509_altname CCLD pkcs12_encode CCLD mini-x509 CCLD gnutls_session_set_id CCLD rng-fork CCLD mini-eagain-dtls CCLD resume-dtls CCLD empty_retrieve_function CCLD tls13-rehandshake-cert CCLD gnutls_ext_raw_parse CCLD handshake-large-cert CCLD x509cert CCLD x509cert-tl CCLD x509cert-ct CCLD infoaccess CCLD mini-dtls-hello-verify CCLD sign-verify-ed25519-rfc8080 rng-fork.c: In function 'doit': rng-fork.c:70:25: warning: leak of FILE 'fopen ("./rng-test", "w")' [CWE-775] [-Wanalyzer-file-leak] 70 | assert(gnutls_rnd(i, buf1, sizeof(buf1)) >= 0); | ^ 'doit': events 1-9 63 | for (i = GNUTLS_RND_NONCE; i <= GNUTLS_RND_KEY; i++) { | ^ | | | (1) following 'true' branch (when 'i_5 != 3')... ->-+ | | | | |+-----------------------------------------------------------------------------------------+ 64 || pid = fork(); || ~ || | |+--------------------->(2) ...to here 65 | if (pid == 0) { | ~ | | | (3) following 'true' branch (when 'pid_15 == 0')... ->-+ | | | | |+--------------------------------------------------------------------------+ 66 || fp = fopen(FILENAME, "w"); || ~ || | |+---------------------------->(4) ...to here | (5) opened here 67 | if (fp == NULL) | ~ | | | (6) assuming 'fopen ("./rng-test", "w")' is non-NULL | (7) following 'false' branch... ->-+ | | ...... | | |+--------------------------------------------------------------+ 70 || assert(gnutls_rnd(i, buf1, sizeof(buf1)) >= 0); || ~ || | |+----------------------->(8) ...to here | (9) 'fopen ("./rng-test", "w")' leaks here; was opened at (5) CCLD trustdb-tofu CCLD dtls-rehandshake-anon CCLD mini-alpn CCLD mini-dtls-large CCLD mini-termination CCLD mini-x509-cas CCLD mini-x509-2 CCLD pkcs12_simple CCLD mini-emsgsize-dtls CCLD chainverify-unsorted CCLD mini-overhead CCLD tls12-ffdhe CCLD mini-dtls-heartbeat CCLD mini-x509-callbacks CCLD key-openssl CCLD priorities CCLD priorities-groups CCLD gnutls_x509_privkey_import CCLD gnutls_x509_crt_list_import CCLD time CCLD x509-server-verify utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |empty_retrieve_function.c:76:6: | 76 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 95 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 100 || gnutls_certificate_allocate_credentials(&clicred); | || ~ | || | | |+------->(3) ...to here | 101 | gnutls_certificate_set_retrieve_function(clicred, cert_cb1); | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-13 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(11) ...to here | | (12) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(13) ...to here | '_test_cli_serv': events 14-17 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (14) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(15) ...to here | | (16) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (17) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |empty_retrieve_function.c:76:6: | 76 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 95 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 100 || gnutls_certificate_allocate_credentials(&clicred); | || ~ | || | | |+------->(3) ...to here | 101 | gnutls_certificate_set_retrieve_function(clicred, cert_cb1); | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-20 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(11) ...to here | | (12) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(13) ...to here | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (14) following 'true' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------+ | 94 || ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | || ~ | || | | |+------------->(15) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 99 || ret = gnutls_priority_set_direct(client, cli_prio, NULL); | || ~ | || | | |+------------->(17) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 103 || gnutls_transport_set_push_function(client, client_push); | || ~ | || | | |+------->(19) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (20) following 'false' branch... ->-+ | | | | '_test_cli_serv': event 21 | |lto1: | (21): ...to here | '_test_cli_serv': event 22 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (22) following 'true' branch... ->-+ | | | | '_test_cli_serv': events 23-29 | | | | | |+---------------------------------------------------+ | 110 || HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | || ^ | || | | |+--------------->(23) ...to here | | (24) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------------+ | 111 || goto cleanup; | || ~ | || | | |+--------------->(25) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (26) following 'false' branch (when 'client_cb_166(D)' is NULL)... ->-+ | | | | | | | |+---------------------------------------------------------------------------------+ | 178 || client_cb(client, priv); | 179 || if (server_cb) | || ~ | || | | |+---------->(27) ...to here | | (28) following 'false' branch (when 'server_cb_169(D)' is NULL)... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------+ | 182 || gnutls_deinit(client); | || ~ | || | | |+------->(29) ...to here | <------+ | 'doit': events 30-31 | |empty_retrieve_function.c:102:9: | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (30) returning to 'doit' from '_test_cli_serv' |...... | 109 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (31) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 32-40 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (32) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(34) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (35) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(36) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (37) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(38) ...to here | | (39) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(40) ...to here | '_test_cli_serv': events 41-44 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (41) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(42) ...to here | | (43) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (44) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |empty_retrieve_function.c:76:6: | 76 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 95 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 100 || gnutls_certificate_allocate_credentials(&clicred); | || ~ | || | | |+------->(3) ...to here | 101 | gnutls_certificate_set_retrieve_function(clicred, cert_cb1); | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-20 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(11) ...to here | | (12) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(13) ...to here |...... | 89 | assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, | | ~ | | | | | (14) following 'true' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------+ | 94 || ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | || ~ | || | | |+------------->(15) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 99 || ret = gnutls_priority_set_direct(client, cli_prio, NULL); | || ~ | || | | |+------------->(17) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 103 || gnutls_transport_set_push_function(client, client_push); | || ~ | || | | |+------->(19) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (20) following 'false' branch... ->-+ | | | | '_test_cli_serv': event 21 | |lto1: | (21): ...to here | '_test_cli_serv': event 22 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (22) following 'true' branch... ->-+ | | | | '_test_cli_serv': events 23-29 | | | | | |+---------------------------------------------------+ | 110 || HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | || ^ | || | | |+--------------->(23) ...to here | | (24) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------------+ | 111 || goto cleanup; | || ~ | || | | |+--------------->(25) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (26) following 'false' branch (when 'client_cb_166(D)' is NULL)... ->-+ | | | | | | | |+---------------------------------------------------------------------------------+ | 178 || client_cb(client, priv); | 179 || if (server_cb) | || ~ | || | | |+---------->(27) ...to here | | (28) following 'false' branch (when 'server_cb_169(D)' is NULL)... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------+ | 182 || gnutls_deinit(client); | || ~ | || | | |+------->(29) ...to here | <------+ | 'doit': events 30-31 | |empty_retrieve_function.c:102:9: | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (30) returning to 'doit' from '_test_cli_serv' |...... | 109 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (31) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 32-47 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (32) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(34) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (35) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(36) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (37) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(38) ...to here | | (39) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(40) ...to here |...... | 89 | assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, | | ~ | | | | | (41) following 'true' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------+ | 94 || ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | || ~ | || | | |+------------->(42) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 99 || ret = gnutls_priority_set_direct(client, cli_prio, NULL); | || ~ | || | | |+------------->(44) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (45) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 103 || gnutls_transport_set_push_function(client, client_push); | || ~ | || | | |+------->(46) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (47) following 'false' branch... ->-+ | | | | '_test_cli_serv': event 48 | |lto1: | (48): ...to here | '_test_cli_serv': event 49 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (49) following 'true' branch... ->-+ | | | | '_test_cli_serv': events 50-56 | | | | | |+---------------------------------------------------+ | 110 || HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | || ^ | || | | |+--------------->(50) ...to here | | (51) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------------+ | 111 || goto cleanup; | || ~ | || | | |+--------------->(52) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (53) following 'false' branch (when 'client_cb_166(D)' is NULL)... ->-+ | | | | | | | |+---------------------------------------------------------------------------------+ | 178 || client_cb(client, priv); | 179 || if (server_cb) | || ~ | || | | |+---------->(54) ...to here | | (55) following 'false' branch (when 'server_cb_169(D)' is NULL)... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------+ | 182 || gnutls_deinit(client); | || ~ | || | | |+------->(56) ...to here | <------+ | 'doit': events 57-58 | |empty_retrieve_function.c:109:9: | 109 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (57) returning to 'doit' from '_test_cli_serv' |...... | 116 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (58) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 59-67 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (59) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (60) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(61) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (62) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(63) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (64) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(65) ...to here | | (66) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(67) ...to here | '_test_cli_serv': events 68-71 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (68) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(69) ...to here | | (70) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (71) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD sign-verify-ext4 CCLD tls-neg-ext4-key utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-termination.c:304:6: | 304 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 305 | { | 306 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 295 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 300 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD resume-lifetime CCLD mini-dtls-srtp CCLD rsa-encrypt-decrypt utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-overhead.c:310:6: | 310 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 311 | { | 312 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 301 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 306 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD mini-loss-time CCLD gnutls-strcodes CCLD mini-record CCLD mini-dtls-record CCLD handshake-timeout CCLD mini-record-range CCLD cert-status CCLD rsa-psk CCLD global-init CCLD sec-params CCLD sign-verify-data CCLD fips-test CCLD fips-override-test CCLD mini-global-load CCLD name-constraints CCLD x509-extensions CCLD long-session-id CCLD mini-x509-callbacks-intr CCLD mini-dtls-lowmtu CCLD set_x509_key_file-late utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-record-range.c:324:6: | 324 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 325 | { | 326 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 316 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 320 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD crlverify CCLD mini-dtls-discard CCLD mini-record-failure CCLD openconnect-dtls12 CCLD tls12-rehandshake-cert-2 utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |long-session-id.c:239:6: | 239 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 240 | { | 241 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 231 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 235 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD custom-urls CCLD set_x509_key_mem CCLD set_x509_key_file CCLD tls12-rehandshake-cert-auto CCLD tls12-rehandshake-set-prio CCLD mini-chain-unsorted CCLD x509-verify-duplicate CCLD x509-verify-with-crl CCLD mini-dtls-mtu CCLD privkey-verify-broken utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ CCLD mini-dtls-record-asym 'doit': events 1-2 | |mini-dtls-lowmtu.c:320:6: | 320 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 321 | { | 322 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 312 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 316 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD key-import-export CCLD priority-set CCLD priority-set2 CCLD pubkey-import-export utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |custom-urls.c:273:6: | 273 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 274 | { | 275 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 265 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 269 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD sign-is-secure utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |mini-chain-unsorted.c:349:6: | 349 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 350 | { | 351 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 340 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 345 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD spki CCLD spki-abstract CCLD rsa-rsa-oaep CCLD rsa-rsa-pss CCLD mini-dtls-fork CCLD mini-key-material CCLD x509cert-invalid CCLD tls-ext-register set_x509_key_file-late.c: In function 'set_cert': set_x509_key_file-late.c:54:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 54 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'set_cert': events 1-2 | | 42 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (1) entry to 'set_cert' |...... | 49 | certfile = get_tmpname(NULL); | | ~ | | | | | (2) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 3-5 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (3) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(5) ...to here | <------+ | 'set_cert': events 6-11 | |set_x509_key_file-late.c:49:20: | 49 | certfile = get_tmpname(NULL); | | ^ | | | | | (6) returning to 'set_cert' from 'get_tmpname' | 50 | | 51 | fp = fopen(certfile, "w"); | | ~ | | | | | (7) opened here | 52 | if (fp == NULL) | | ~ | | | | | (8) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (9) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 53 || fail("error in fopen\n"); | 54 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(10) ...to here | | (11) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (7) | set_x509_key_file-late.c:54:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 54 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'set_cert': events 1-2 | | 42 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (1) entry to 'set_cert' |...... | 49 | certfile = get_tmpname(NULL); | | ~ | | | | | (2) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 3-5 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (3) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(5) ...to here | <------+ | 'set_cert': events 6-13 | |set_x509_key_file-late.c:49:20: | 49 | certfile = get_tmpname(NULL); | | ^ | | | | | (6) returning to 'set_cert' from 'get_tmpname' | 50 | | 51 | fp = fopen(certfile, "w"); | | ~ | | | | | (7) opened here | 52 | if (fp == NULL) | | ~ | | | | | (8) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (9) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 53 || fail("error in fopen\n"); | 54 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(10) ...to here | | (11) following 'true' branch... ->-+ | | (13) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (7) | | | | | | | |+-------------------------------------------+ | 55 || assert(fwrite(key->data, 1, key->size, fp) > 0); | || ~ | || | | |+------->(12) ...to here | CCLD tls-supplemental CCLD mini-dtls0-9 CCLD duplicate-extensions CCLD record-retvals CCLD mini-server-name CCLD tls-etm utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-12 | |set_x509_key_mem.c:55:6: | 55 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 69 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 70 || gnutls_certificate_allocate_credentials(&x509_cred); | || ~ | || | | |+------->(3) ...to here |...... | 74 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 77 || ret = gnutls_certificate_set_x509_key_mem( | || ~ | || | | |+------------->(5) ...to here | 78 | x509_cred, &cli_cert, &server_key, GNUTLS_X509_FMT_PEM); | 79 | if (ret != GNUTLS_E_CERTIFICATE_KEY_MISMATCH) { | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 84 || gnutls_certificate_free_credentials(x509_cred); | || ~ | || | | |+------->(7) ...to here |...... | 94 | if (ret < 0) { | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 99 || ret = gnutls_certificate_set_x509_key_mem( | || ~ | || | | |+------------->(9) ...to here |...... | 102 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 107 || test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | || ~ | || | | |+------->(11) ...to here | | (12) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 13-14 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (13) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (14) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 15-23 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (15) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(17) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (18) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(19) ...to here | 79 | if (ret < 0) | | ~ | | | | | (20) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(21) ...to here | | (22) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(23) ...to here | '_test_cli_serv': events 24-27 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (24) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(25) ...to here | | (26) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (27) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD tls-force-etm CCLD x509-cert-callback CCLD alerts CCLD client-sign-md5-rep CCLD tls12-invalid-key-exchanges CCLD session-rdn-read CCLD tls13-cert-key-exchange CCLD x509-cert-callback-ocsp CCLD gnutls_ocsp_resp_list_import2 CCLD server-sign-md5-rep CCLD privkey-keygen CCLD mini-tls-nonblock CCLD no-signal utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |alerts.c:293:6: | 293 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 294 | { | 295 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 285 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 289 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD pkcs7-gen CCLD dtls-etm CCLD x509sign-verify-rsa CCLD x509sign-verify-ecdsa CCLD x509sign-verify-gost CCLD cipher-alignment CCLD oids CCLD atfork CCLD prf CCLD psk-file CCLD priority-init2 utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |no-signal.c:234:6: | 234 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 235 | { | 236 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 226 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 230 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD post-client-hello-change-prio CCLD status-request CCLD status-request-ok CCLD rfc7633-missing CCLD sign-verify-ext CCLD fallback-scsv CCLD pkcs8-key-decode CCLD urls CCLD dtls-rehandshake-cert CCLD rfc7633-ok CCLD key-usage-rsa CCLD key-usage-ecdhe-rsa CCLD mini-session-verify-function CCLD auto-verify CCLD record-timeouts CCLD mini-dtls-hello-verify-48 CCLD set-default-prio CCLD tls12-anon-upgrade CCLD tlsext-decoding CCLD rsa-psk-cb CCLD gnutls-ids CCLD rehandshake-switch-cert CCLD rehandshake-switch-cert-allow CCLD rehandshake-switch-cert-client CCLD rehandshake-switch-cert-client-allow CCLD handshake-versions CCLD dtls-handshake-versions CCLD dtls-max-record CCLD tls12-max-record CCLD alpn-server-prec CCLD ocsp-filename-memleak CCLD dh-params CCLD rehandshake-ext-secret CCLD pcert-list CCLD session-export-funcs CCLD handshake-false-start CCLD version-checks CCLD key-material-dtls CCLD key-material-set-dtls CCLD name-constraints-merge CCLD crl-basic CCLD crq-basic CCLD send-client-cert CCLD custom-urls-override CCLD hex CCLD rehandshake-switch-psk-id CCLD rehandshake-switch-srp-id CCLD base64 CCLD srpbase64 CCLD pkcs1-digest-info CCLD set_x509_key CCLD set_x509_key_file_der CCLD set_x509_pkcs12_key CCLD crt_apis CCLD tls12-cert-key-exchange CCLD tls11-cert-key-exchange CCLD tls10-cert-key-exchange utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |custom-urls-override.c:274:6: | 274 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 275 | { | 276 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 266 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 270 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD ssl30-cert-key-exchange CCLD dtls12-cert-key-exchange CCLD dtls10-cert-key-exchange CCLD x509-cert-callback-legacy CCLD keylog-env CCLD ssl2-hello CCLD tlsfeature-ext CCLD dtls-rehandshake-cert-2 CCLD dtls-session-ticket-lost CCLD tlsfeature-crt CCLD dtls-rehandshake-cert-3 CCLD resume-with-false-start CCLD set_x509_key_file_ocsp CCLD client-fastopen utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-3 | |set_x509_pkcs12_key.c:56:6: | 56 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 65 | if (gnutls_fips140_mode_enabled()) { | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 69 || global_init(); | || ~ | || | | |+------->(3) inlined call to 'global_init' from 'doit' | +--> 'global_init': event 4 | |utils.h:61:9: | 61 | gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL); | | ^ | | | | | (4) ...to here | <------+ | 'doit': events 5-23 | |set_x509_pkcs12_key.c:70:9: | 70 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ^ | | | | | (5) following 'true' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 73 || ret = gnutls_certificate_set_x509_simple_pkcs12_file( | || ~ | || | | |+------------->(6) ...to here | 74 | xcred, certfile, GNUTLS_X509_FMT_PEM, "1234"); | 75 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 79 || gnutls_certificate_free_credentials(xcred); | || ~ | || | | |+------->(8) ...to here | 80 | | 81 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (9) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 82 || assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | || ~ | || | | |+------->(10) ...to here | | (11) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 83 || | 84 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(12) ...to here | 85 | GNUTLS_X509_FMT_PEM); | 86 | if (ret < 0) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 89 || certfile = get_tmpname(NULL); | || ~ | || | | |+------------------>(14) ...to here |...... | 92 | if (fp == NULL) | | ~ | | | | | (15) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 95 || assert(fwrite(server_ca3_pkcs12_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 96 || strlen((char *)server_ca3_pkcs12_pem), fp) > 0); | 97 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 101 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 106 || ret = gnutls_certificate_get_crt_raw(xcred, 0, 0, &tcert); | || ~ | || | | |+------------->(20) ...to here | 107 | if (ret < 0) { | | ~ | | | | | (21) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 112 || compare(&tcert, server_localhost_ca3_cert_pem); | || ~ | || | | |+------->(22) ...to here | | (23) calling 'compare' from 'doit' | +--> 'compare': events 24-26 | | 36 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (24) entry to 'compare' |...... | 43 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 47 || if (der->size != new_der.size || | || ~ | || | | |+-------------->(26) ...to here | 'compare': events 27-28 | | 47 | if (der->size != new_der.size || | | ^ | | | | | (27) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 48 || memcmp(der->data, new_der.data, der->size) != 0) { | || ~ | || | | |+----------->(28) ...to here | 'compare': events 29-30 | | 47 | if (der->size != new_der.size || | | ^ | | | | | (29) following 'false' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 52 || gnutls_free(new_der.data); | || ~ | || | | |+------->(30) ...to here | <------+ | 'doit': events 31-32 | | 112 | compare(&tcert, server_localhost_ca3_cert_pem); | | ^ | | | | | (31) returning to 'doit' from 'compare' |...... | 116 | test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (32) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 33-34 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (33) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (34) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 35-43 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (35) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (36) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(37) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (38) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(39) ...to here | 79 | if (ret < 0) | | ~ | | | | | (40) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(41) ...to here | | (42) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(43) ...to here | '_test_cli_serv': events 44-47 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (44) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(45) ...to here | | (46) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (47) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_pkcs12_key.c: In function 'doit': set_x509_pkcs12_key.c:95:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 95 | assert(fwrite(server_ca3_pkcs12_pem, 1, | ^ 'doit': events 1-3 | | 56 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 65 | if (gnutls_fips140_mode_enabled()) { | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 69 || global_init(); | || ~ | || | | |+------->(3) inlined call to 'global_init' from 'doit' | +--> 'global_init': event 4 | |utils.h:61:9: | 61 | gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL); | | ^ | | | | | (4) ...to here | <------+ | 'doit': events 5-15 | |set_x509_pkcs12_key.c:70:9: | 70 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ^ | | | | | (5) following 'true' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 73 || ret = gnutls_certificate_set_x509_simple_pkcs12_file( | || ~ | || | | |+------------->(6) ...to here | 74 | xcred, certfile, GNUTLS_X509_FMT_PEM, "1234"); | 75 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (7) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 79 || gnutls_certificate_free_credentials(xcred); | || ~ | || | | |+------->(8) ...to here | 80 | | 81 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (9) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 82 || assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | || ~ | || | | |+------->(10) ...to here | | (11) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 83 || | 84 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(12) ...to here | 85 | GNUTLS_X509_FMT_PEM); | 86 | if (ret < 0) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 89 || certfile = get_tmpname(NULL); | || ~ | || | | |+------------------>(14) ...to here | | (15) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 16-18 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (16) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (17) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(18) ...to here | <------+ | 'doit': events 19-24 | |set_x509_pkcs12_key.c:89:20: | 89 | certfile = get_tmpname(NULL); | | ^ | | | | | (19) returning to 'doit' from 'get_tmpname' | 90 | | 91 | fp = fopen(certfile, "w"); | | ~ | | | | | (20) opened here | 92 | if (fp == NULL) | | ~ | | | | | (21) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (22) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 95 || assert(fwrite(server_ca3_pkcs12_pem, 1, | || ~ | || | | |+------->(23) ...to here | | (24) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (20) | CCLD rng-sigint CCLD srp CC safe-renegotiation/srn0.o utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-8 | |set_x509_key_file_der.c:77:6: | 77 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 87 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 92 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 93 || | 94 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca2_cert, | || ~ | || | | |+------------->(5) ...to here | 95 | GNUTLS_X509_FMT_PEM); | 96 | if (ret < 0) | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 99 || assert(get_tmpname(certfile) != NULL); | || ~ | || | | |+------->(7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-12 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 289 || path = getenv("builddir"); | || ~ | || | | |+-------------->(11) ...to here |...... | 293 | if (s == NULL) | | ~ | | | | | (12) following 'false' branch (when 's_22(D)' is non-NULL)... ->-+ | | | | 'get_tmpname': event 13 | |lto1: | (13): ...to here | <------+ | 'doit': events 14-17 | |set_x509_key_file_der.c:99:9: | 99 | assert(get_tmpname(certfile) != NULL); | | ^ | | | | | (14) returning to 'doit' from 'get_tmpname' | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 100 || assert(get_tmpname(keyfile) != NULL); | || ~ | || | | |+------->(16) ...to here | | (17) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 18-21 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (18) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 289 || path = getenv("builddir"); | || ~ | || | | |+-------------->(20) ...to here |...... | 293 | if (s == NULL) | | ~ | | | | | (21) following 'false' branch (when 's_22(D)' is non-NULL)... ->-+ | | | | 'get_tmpname': event 22 | |lto1: | (22): ...to here | 'get_tmpname': event 23 | | 302 | append(p); | | ^ | | | | | (23) calling 'append' from 'get_tmpname' | +--> 'append': events 24-25 | | 262 | static void append(const char *file) | | ^ | | | | | (24) entry to 'append' |...... | 266 | if (temp_files == (void *)-1) | | ~ | | | | | (25) following 'true' branch... ->-+ | | | | 'append': event 26 | |lto1: | (26): ...to here | <------+ | 'get_tmpname': event 27 | | 302 | append(p); | | ^ | | | | | (27) returning to 'get_tmpname' from 'append' | <------+ | 'doit': events 28-31 | |set_x509_key_file_der.c:100:9: | 100 | assert(get_tmpname(keyfile) != NULL); | | ^ | | | | | (28) returning to 'doit' from 'get_tmpname' | | (29) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 101 || | 102 || write_der(certfile, "CERTIFICATE", (char *)server2_cert_pem); | || ~ | || | | |+------->(30) ...to here | | (31) calling 'write_der' from 'doit' | +--> 'write_der': events 32-38 | | 56 | static void write_der(const char *file, const char *header, const char *ipem) | | ^ | | | | | (32) entry to 'write_der' |...... | 64 | if (ret < 0) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 68 || fp = fopen(file, "wb"); | || ~ | || | | |+------------>(34) ...to here | 69 | if (fp == NULL) | | ~ | | | | | (35) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 72 || assert(fwrite(der.data, 1, der.size, fp) > 0); | || ~ | || | | |+------->(36) ...to here | | (37) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 73 || fclose(fp); | || ~ | || | | |+------->(38) ...to here | <------+ | 'doit': events 39-40 | | 102 | write_der(certfile, "CERTIFICATE", (char *)server2_cert_pem); | | ^ | | | | | (39) returning to 'doit' from 'write_der' | 103 | write_der(keyfile, "RSA PRIVATE KEY", (char *)server2_key_pem); | | ~ | | | | | (40) calling 'write_der' from 'doit' | +--> 'write_der': events 41-47 | | 56 | static void write_der(const char *file, const char *header, const char *ipem) | | ^ | | | | | (41) entry to 'write_der' |...... | 64 | if (ret < 0) { | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 68 || fp = fopen(file, "wb"); | || ~ | || | | |+------------>(43) ...to here | 69 | if (fp == NULL) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 72 || assert(fwrite(der.data, 1, der.size, fp) > 0); | || ~ | || | | |+------->(45) ...to here | | (46) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 73 || fclose(fp); | || ~ | || | | |+------->(47) ...to here | <------+ | 'doit': events 48-53 | | 103 | write_der(keyfile, "RSA PRIVATE KEY", (char *)server2_key_pem); | | ^ | | | | | (48) returning to 'doit' from 'write_der' |...... | 107 | if (ret < 0) | | ~ | | | | | (49) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 111 || ret = gnutls_certificate_get_crt_raw(xcred, 0, 0, &tcert); | || ~ | || | | |+------------->(50) ...to here | 112 | if (ret < 0) { | | ~ | | | | | (51) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 117 || compare(&tcert, server2_cert_pem); | || ~ | || | | |+------->(52) ...to here | | (53) calling 'compare' from 'doit' | +--> 'compare': events 54-56 | | 36 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (54) entry to 'compare' |...... | 43 | if (ret < 0) { | | ~ | | | | | (55) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 47 || if (der->size != new_der.size || | || ~ | || | | |+-------------->(56) ...to here | 'compare': events 57-58 | | 47 | if (der->size != new_der.size || | | ^ | | | | | (57) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 48 || memcmp(der->data, new_der.data, der->size) != 0) { | || ~ | || | | |+----------->(58) ...to here | 'compare': events 59-60 | | 47 | if (der->size != new_der.size || | | ^ | | | | | (59) following 'false' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 52 || gnutls_free(new_der.data); | || ~ | || | | |+------->(60) ...to here | <------+ | 'doit': events 61-62 | | 117 | compare(&tcert, server2_cert_pem); | | ^ | | | | | (61) returning to 'doit' from 'compare' |...... | 122 | test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (62) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 63-64 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (63) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (64) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 65-73 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (65) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (66) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(67) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (68) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(69) ...to here | 79 | if (ret < 0) | | ~ | | | | | (70) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(71) ...to here | | (72) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(73) ...to here | '_test_cli_serv': events 74-77 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (74) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(75) ...to here | | (76) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (77) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file_der.c: In function 'write_der': set_x509_key_file_der.c:72:9: warning: leak of FILE 'fopen (file_16(D), "wb")' [CWE-775] [-Wanalyzer-file-leak] 72 | assert(fwrite(der.data, 1, der.size, fp) > 0); | ^ 'write_der': events 1-7 64 | if (ret < 0) { | ^ | | | (1) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 68 || fp = fopen(file, "wb"); || ~ || | |+------------>(2) ...to here | (3) opened here 69 | if (fp == NULL) | ~ | | | (4) assuming 'fopen (file_16(D), "wb")' is non-NULL | (5) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 72 || assert(fwrite(der.data, 1, der.size, fp) > 0); || ~ || | |+------->(6) ...to here | (7) 'fopen (file_16(D), "wb")' leaks here; was opened at (3) utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |set_x509_key.c:222:6: | 222 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 223 | { | 224 | basic(); | | ~ | | | | | (2) calling 'basic' from 'doit' | +--> 'basic': events 3-10 | | 144 | static void basic(void) | | ^ | | | | | (3) entry to 'basic' |...... | 161 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 162 || assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 163 || | 164 || gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 168 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 171 || idx = import_key(x509_cred, &server_key, &server_cert); | || ~ | || | | |+------------->(9) ...to here | | (10) calling 'import_key' from 'basic' | +--> 'import_key': events 11-17 | | 87 | static int import_key(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (11) entry to 'import_key' |...... | 96 | assert(gnutls_x509_privkey_init(&key) >= 0); | | ~ | | | | | (12) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 97 || | 98 || ret = gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert, | || ~ | || | | |+------------->(13) ...to here | 99 | GNUTLS_X509_FMT_PEM, 0); | 100 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 105 || ret = gnutls_x509_privkey_import(key, skey, GNUTLS_X509_FMT_PEM); | || ~ | || | | |+------------->(15) ...to here | 106 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 110 || ret = gnutls_certificate_set_x509_key(xcred, crt_list, crt_list_size, | || ~ | || | | |+------------->(17) ...to here | <------+ | 'basic': events 18-21 | | 171 | idx = import_key(x509_cred, &server_key, &server_cert); | | ^ | | | | | (18) returning to 'basic' from 'import_key' | 172 | assert(idx == 0); | | ~ | | | | | (19) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 173 || | 174 || test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | || ~ | || | | |+------->(20) ...to here | | (21) calling 'test_cli_serv' from 'basic' | +--> 'test_cli_serv': events 22-23 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (22) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (23) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 24-32 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (24) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(26) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (27) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(28) ...to here | 79 | if (ret < 0) | | ~ | | | | | (29) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(30) ...to here | | (31) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(32) ...to here | '_test_cli_serv': events 33-36 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (33) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(34) ...to here | | (35) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (36) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CC safe-renegotiation/srn1.o CC safe-renegotiation/srn2.o CC safe-renegotiation/srn3.o CC safe-renegotiation/srn4.o CC safe-renegotiation/srn5.o CCLD rsa-illegal-import CCLD set_x509_ocsp_multi_invalid CCLD set_key CCLD set_x509_key_file_ocsp_multi2 CCLD set_x509_ocsp_multi_unknown CCLD set_x509_ocsp_multi_pem CCLD tls-ext-not-in-dtls CCLD set_key_utf8 CCLD set_x509_key_utf8 CCLD insecure_key CCLD handshake-large-packet utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |keylog-env.c:152:6: | 152 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 158 | assert(get_tmpname(filename) != NULL); | | ~ | | | | | (2) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 3-6 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (3) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 289 || path = getenv("builddir"); | || ~ | || | | |+-------------->(5) ...to here |...... | 293 | if (s == NULL) | | ~ | | | | | (6) following 'false' branch (when 's_22(D)' is non-NULL)... ->-+ | | | | 'get_tmpname': event 7 | |lto1: | (7): ...to here | <------+ | 'doit': events 8-11 | |keylog-env.c:158:9: | 158 | assert(get_tmpname(filename) != NULL); | | ^ | | | | | (8) returning to 'doit' from 'get_tmpname' | | (9) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 159 || | 160 || remove(filename); | || ~ | || | | |+------->(10) ...to here | 161 | | 162 | run(filename, | | ~ | | | | | (11) calling 'run' from 'doit' | +--> 'run': events 12-21 | | 93 | static void run(const char *filename, const char *prio, const char **included, | | ^ | | | | | (12) entry to 'run' |...... | 117 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (13) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 118 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 119 || | 120 || ret = gnutls_certificate_set_x509_key_mem( | || ~ | || | | |+------------->(16) ...to here |...... | 123 | if (ret < 0) { | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 128 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(18) ...to here | 129 | GNUTLS_X509_FMT_PEM); | 130 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 133 || test_cli_serv(x509_cred, clicred, prio, "localhost", NULL, NULL, NULL); | || ~ | || | | |+------->(20) ...to here | | (21) calling 'test_cli_serv' from 'run' | +--> 'test_cli_serv': events 22-23 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (22) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (23) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 24-32 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (24) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(26) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (27) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(28) ...to here | 79 | if (ret < 0) | | ~ | | | | | (29) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(30) ...to here | | (31) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(32) ...to here | '_test_cli_serv': events 33-36 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (33) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(34) ...to here | | (35) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (36) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD client_dsa_key CCLD server_ecdsa_key CCLD tls-session-ext-register CCLD tls-session-supplemental CCLD multi-alerts CCLD naked-alerts utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'start': events 1-2 | |tls-ext-not-in-dtls.c:271:13: | 271 | static void start(const char *name, int type) | | ^ | | | | | (1) entry to 'start' |...... | 277 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 263 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 267 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD pkcs7-cat-parse CCLD set_known_dh_params_x509 CCLD set_known_dh_params_anon CCLD set_known_dh_params_psk utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 239 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 240 || | 241 || certfile = get_tmpname(certname); | || ~ | || | | |+------------------>(7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-27 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 244 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 245 || fail("error in fopen\n"); | 246 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 247 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 249 || fp) > 0); | 250 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 255 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 258 || fp = fopen(certfile, "wb"); | || ~ | || | | |+------------>(20) ...to here | 259 | if (fp == NULL) | | ~ | | | | | (21) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 260 || fail("error in fopen\n"); | 261 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(22) ...to here | | (23) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 262 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 263 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(24) ...to here | | (25) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 264 || fp) > 0); | 265 || fclose(fp); | || ~ | || | | |+------->(26) ...to here |...... | 271 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (27) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 28-30 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (28) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (29) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(30) ...to here | <------+ | 'doit': events 31-48 | |set_x509_key_file_ocsp.c:271:21: | 271 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (31) returning to 'doit' from 'get_tmpname' | 272 | fp = fopen(ocspfile1, "wb"); | 273 | if (fp == NULL) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 274 || fail("error in fopen\n"); | 275 || assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | || ~ | || | | |+------->(33) ...to here | | (34) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 276 || fclose(fp); | || ~ | || | | |+------->(35) ...to here |...... | 280 | if (ret < 0) | | ~ | | | | | (36) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 283 || t = gnutls_certificate_get_ocsp_expiration(xcred, 0, 0, 0); | || ~ | || | | |+----------->(37) ...to here | 284 | if (t != 1511689427) | | ~ | | | | | (38) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 287 || t = gnutls_certificate_get_ocsp_expiration(xcred, 0, 1, 0); | || ~ | || | | |+----------->(39) ...to here | 288 | if (t != -1) | | ~ | | | | | (40) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 291 || t = gnutls_certificate_get_ocsp_expiration(xcred, 0, -1, 0); | || ~ | || | | |+----------->(41) ...to here | 292 | if (t != 1511689427) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 297 || gnutls_certificate_set_verify_flags(clicred, | || ~ | || | | |+------->(43) ...to here | 298 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 299 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 303 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(45) ...to here | 304 | GNUTLS_X509_FMT_PEM); | 305 | if (ret < 0) { | | ~ | | | | | (46) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 309 || test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", | || ~ | || | | |+------->(47) ...to here | | (48) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 49-50 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (49) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (50) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 51-59 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (51) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(53) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (54) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(55) ...to here | 79 | if (ret < 0) | | ~ | | | | | (56) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(57) ...to here | | (58) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(59) ...to here | '_test_cli_serv': events 60-63 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (60) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(61) ...to here | | (62) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (63) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file_ocsp.c: In function 'doit': set_x509_key_file_ocsp.c:246:9: warning: leak of FILE 'fopen (get_tmpname (&certname), "wb")' [CWE-775] [-Wanalyzer-file-leak] 246 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 239 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 240 || | 241 || certfile = get_tmpname(certname); | || ~ | || | | |+------------------>(7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 242 | | 243 | fp = fopen(certfile, "wb"); | | ~ | | | | | (13) opened here | 244 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 245 || fail("error in fopen\n"); | 246 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) 'fopen (get_tmpname (&certname), "wb")' leaks here; was opened at (13) | set_x509_key_file_ocsp.c:248:9: warning: leak of FILE 'fopen (get_tmpname (&certname), "wb")' [CWE-775] [-Wanalyzer-file-leak] 248 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 239 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 240 || | 241 || certfile = get_tmpname(certname); | || ~ | || | | |+------------------>(7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 242 | | 243 | fp = fopen(certfile, "wb"); | | ~ | | | | | (13) opened here | 244 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 245 || fail("error in fopen\n"); | 246 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 247 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(18) ...to here | | (19) 'fopen (get_tmpname (&certname), "wb")' leaks here; was opened at (13) | set_x509_key_file_ocsp.c:261:9: warning: leak of FILE 'fopen (get_tmpname (&certname), "wb")' [CWE-775] [-Wanalyzer-file-leak] 261 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 239 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 240 || | 241 || certfile = get_tmpname(certname); | || ~ | || | | |+------------------>(7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-25 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 244 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 245 || fail("error in fopen\n"); | 246 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 247 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 249 || fp) > 0); | 250 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 255 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 258 || fp = fopen(certfile, "wb"); | || ~ | || | | |+------------>(20) ...to here | | (21) opened here | 259 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (&certname), "wb")' is non-NULL | | (23) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 260 || fail("error in fopen\n"); | 261 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(24) ...to here | | (25) 'fopen (get_tmpname (&certname), "wb")' leaks here; was opened at (21) | set_x509_key_file_ocsp.c:263:9: warning: leak of FILE 'fopen (get_tmpname (&certname), "wb")' [CWE-775] [-Wanalyzer-file-leak] 263 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 239 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 240 || | 241 || certfile = get_tmpname(certname); | || ~ | || | | |+------------------>(7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-27 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 244 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 245 || fail("error in fopen\n"); | 246 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 247 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 249 || fp) > 0); | 250 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 255 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 258 || fp = fopen(certfile, "wb"); | || ~ | || | | |+------------>(20) ...to here | | (21) opened here | 259 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (&certname), "wb")' is non-NULL | | (23) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 260 || fail("error in fopen\n"); | 261 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(24) ...to here | | (25) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 262 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 263 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(26) ...to here | | (27) 'fopen (get_tmpname (&certname), "wb")' leaks here; was opened at (21) | set_x509_key_file_ocsp.c:275:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 275 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp.c:224:6: | 224 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 238 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 239 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 240 || | 241 || certfile = get_tmpname(certname); | || ~ | || | | |+------------------>(7) ...to here | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-27 | |set_x509_key_file_ocsp.c:241:20: | 241 | certfile = get_tmpname(certname); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 244 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 245 || fail("error in fopen\n"); | 246 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 247 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 248 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 249 || fp) > 0); | 250 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 255 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 258 || fp = fopen(certfile, "wb"); | || ~ | || | | |+------------>(20) ...to here | 259 | if (fp == NULL) | | ~ | | | | | (21) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 260 || fail("error in fopen\n"); | 261 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(22) ...to here | | (23) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 262 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 263 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(24) ...to here | | (25) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 264 || fp) > 0); | 265 || fclose(fp); | || ~ | || | | |+------->(26) ...to here |...... | 271 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (27) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 28-30 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (28) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (29) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(30) ...to here | <------+ | 'doit': events 31-36 | |set_x509_key_file_ocsp.c:271:21: | 271 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (31) returning to 'doit' from 'get_tmpname' | 272 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (32) opened here | 273 | if (fp == NULL) | | ~ | | | | | (33) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 274 || fail("error in fopen\n"); | 275 || assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | || ~ | || | | |+------->(35) ...to here | | (36) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (32) | CCLD session-tickets-ok CCLD session-tickets-missing CCLD set_x509_key_file_legacy CCLD status-request-ext CCLD gnutls_x509_crt_sign utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-12 | |insecure_key.c:66:6: | 66 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 83 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 84 || assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 85 || | 86 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(5) ...to here | 87 | GNUTLS_X509_FMT_PEM); | 88 | if (ret < 0) | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 91 || ret = gnutls_certificate_set_x509_key_mem2( | || ~ | || | | |+------------->(7) ...to here |...... | 95 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 98 || ret = gnutls_certificate_set_x509_key_mem2( | || ~ | || | | |+------------->(9) ...to here |...... | 101 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 104 || test_cli_serv(x509_cred, clicred, "NORMAL", "localhost6", NULL, NULL, | || ~ | || | | |+------->(11) ...to here | | (12) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 13-14 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (13) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (14) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 15-23 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (15) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(17) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (18) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(19) ...to here | 79 | if (ret < 0) | | ~ | | | | | (20) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(21) ...to here | | (22) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(23) ...to here | '_test_cli_serv': events 24-27 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (24) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(25) ...to here | | (26) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (27) out-of-bounds read from byte 11 till byte 14 but '"localhost6"' ends at byte 11 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost6"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost6"' are '[0]' to '[10]' +-------------------------------------------------+ | read of 11 bytes | +-------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | | | +----+-----------------------------------------+----++-----------------+ |[0] | ... |[10]|| | +----+----+----+----++----+----+---+---+---+---+----+| | |'l' |'o' |'c' |'a' ||'l' |'h' |'o'|'s'|'t'|'6'|NUL ||after valid range| +----+----+----+----++----+----+---+---+---+---+----+| | | string literal (type: 'const char[11]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 11 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD gnutls_x509_crq_sign utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-12 | |client_dsa_key.c:64:6: | 64 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 78 | assert(gnutls_certificate_allocate_credentials(&cli_cred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 79 || | 80 || ret = gnutls_certificate_set_x509_trust_mem(cli_cred, &ca3_cert, | || ~ | || | | |+------------->(3) ...to here | 81 | GNUTLS_X509_FMT_PEM); | 82 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 85 || ret = gnutls_certificate_set_x509_key_mem(cli_cred, &clidsa_ca3_cert, | || ~ | || | | |+------------->(5) ...to here |...... | 88 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 94 || gnutls_certificate_allocate_credentials(&serv_cred); | || ~ | || | | |+------->(7) ...to here |...... | 102 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 105 || ret = gnutls_certificate_set_x509_key_mem( | || ~ | || | | |+------------->(9) ...to here |...... | 108 | if (ret < 0) { | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 113 || test_cli_serv_cert( | || ~ | || | | |+------->(11) ...to here | | (12) calling 'test_cli_serv_cert' from 'doit' | +--> 'test_cli_serv_cert': events 13-14 | |utils-adv.c:296:6: | 296 | void test_cli_serv_cert(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (13) entry to 'test_cli_serv_cert' |...... | 301 | _test_cli_serv(server_cred, client_cred, serv_prio, cli_prio, host, | | ~ | | | | | (14) calling '_test_cli_serv' from 'test_cli_serv_cert' | +--> '_test_cli_serv': events 15-23 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (15) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(17) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (18) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(19) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (20) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(21) ...to here | | (22) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(23) ...to here | '_test_cli_serv': events 24-27 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (24) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(25) ...to here | | (26) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (27) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD dtls-repro-20170915 utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |set_key_utf8.c:168:6: | 168 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 173 | auto_parse(); | | ~ | | | | | (2) calling 'auto_parse' from 'doit' | +--> 'auto_parse': events 3-26 | | 66 | static void auto_parse(void) | | ^ | | | | | (3) entry to 'auto_parse' |...... | 86 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 87 || assert(gnutls_privkey_init(&key) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 88 || | 89 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(7) ...to here | | (8) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 90 || | 91 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(9) ...to here | 92 | GNUTLS_X509_FMT_PEM); | 93 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 96 || pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]); | || ~ | || | | |+----------------------->(11) ...to here |...... | 100 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 105 || ret = gnutls_privkey_import_x509_raw(key, &server_ca3_key, | || ~ | || | | |+------------->(13) ...to here | 106 | GNUTLS_X509_FMT_PEM, NULL, 0); | 107 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 111 || ret = gnutls_certificate_set_key(x509_cred, NULL, 0, pcert_list, | || ~ | || | | |+------------->(15) ...to here | 112 | pcert_list_size, key); | 113 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 120 || assert(gnutls_privkey_init(&second_key) >= 0); | || ~ | || | | |+------->(17) ...to here | | (18) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 121 || | 122 || pcert_list_size = 2; | || ~ | || | | |+----------------------->(19) ...to here |...... | 126 | if (ret < 0) { | | ~ | | | | | (20) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 131 || ret = gnutls_privkey_import_x509_raw(second_key, &server_ca3_key, | || ~ | || | | |+------------->(21) ...to here | 132 | GNUTLS_X509_FMT_PEM, NULL, 0); | 133 | if (ret < 0) { | | ~ | | | | | (22) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 137 || ret = gnutls_certificate_set_key(x509_cred, NULL, 0, second_pcert, 1, | || ~ | || | | |+------------->(23) ...to here | 138 | second_key); | 139 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 145 || test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | || ~ | || | | |+------->(25) ...to here | | (26) calling 'test_cli_serv' from 'auto_parse' | +--> 'test_cli_serv': events 27-28 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (27) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (28) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 29-37 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (29) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (30) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(31) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (32) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(33) ...to here | 79 | if (ret < 0) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(35) ...to here | | (36) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(37) ...to here | '_test_cli_serv': events 38-41 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(39) ...to here | | (40) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (41) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD rng-no-onload CCLD dtls1-2-mtu-check utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |set_key.c:327:6: | 327 | void doit(void) | | ^ | | | | | (1) entry to 'doit' | 328 | { | 329 | basic(); | | ~ | | | | | (2) calling 'basic' from 'doit' | +--> 'basic': events 3-10 | | 125 | static void basic(void) | | ^ | | | | | (3) entry to 'basic' |...... | 142 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 143 || assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 144 || | 145 || gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 152 || idx = import_key(x509_cred, &server_key, &server_cert); | || ~ | || | | |+------------->(9) ...to here | | (10) calling 'import_key' from 'basic' | +--> 'import_key': events 11-19 | | 66 | static unsigned import_key(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (11) entry to 'import_key' |...... | 77 | assert(gnutls_privkey_init(&key) >= 0); | | ~ | | | | | (12) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 78 || | 79 || pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]); | || ~ | || | | |+----------------------->(13) ...to here |...... | 82 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 87 || ret = gnutls_privkey_import_x509_raw(key, skey, GNUTLS_X509_FMT_PEM, | || ~ | || | | |+------------->(15) ...to here | 88 | NULL, 0); | 89 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 93 || ret = gnutls_certificate_set_key(xcred, names, 2, pcert_list, | || ~ | || | | |+------------->(17) ...to here | 94 | pcert_list_size, key); | 95 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 102 || idx = ret; | || ~ | || | | |+----------->(19) ...to here | <------+ | 'basic': events 20-23 | | 152 | idx = import_key(x509_cred, &server_key, &server_cert); | | ^ | | | | | (20) returning to 'basic' from 'import_key' | 153 | assert(idx == 0); | | ~ | | | | | (21) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 154 || | 155 || test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | || ~ | || | | |+------->(22) ...to here | | (23) calling 'test_cli_serv' from 'basic' | +--> 'test_cli_serv': events 24-25 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (24) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (25) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 26-34 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (26) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(28) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (29) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(30) ...to here | 79 | if (ret < 0) | | ~ | | | | | (31) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(32) ...to here | | (33) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(34) ...to here | '_test_cli_serv': events 35-38 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (35) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(36) ...to here | | (37) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (38) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-10 | |set_x509_key_utf8.c:144:6: | 144 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 165 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 166 || assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 167 || | 168 || gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 172 | if (ret < 0) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 175 || idx = import_key(x509_cred, &server_ca3_key, | || ~ | || | | |+------------->(9) ...to here | | (10) calling 'import_key' from 'doit' | +--> 'import_key': events 11-17 | | 87 | static int import_key(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (11) entry to 'import_key' |...... | 96 | assert(gnutls_x509_privkey_init(&key) >= 0); | | ~ | | | | | (12) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 97 || | 98 || ret = gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert, | || ~ | || | | |+------------->(13) ...to here | 99 | GNUTLS_X509_FMT_PEM, 0); | 100 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 105 || ret = gnutls_x509_privkey_import(key, skey, GNUTLS_X509_FMT_PEM); | || ~ | || | | |+------------->(15) ...to here | 106 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 110 || ret = gnutls_certificate_set_x509_key(xcred, crt_list, crt_list_size, | || ~ | || | | |+------------->(17) ...to here | <------+ | 'doit': events 18-21 | | 175 | idx = import_key(x509_cred, &server_ca3_key, | | ^ | | | | | (18) returning to 'doit' from 'import_key' | 176 | &server_ca3_localhost_cert_chain); | 177 | assert(idx == 0); | | ~ | | | | | (19) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 178 || | 179 || idx = import_key(x509_cred, &server_ca3_key, | || ~ | || | | |+------------->(20) ...to here | | (21) calling 'import_key' from 'doit' | +--> 'import_key': events 22-28 | | 87 | static int import_key(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (22) entry to 'import_key' |...... | 96 | assert(gnutls_x509_privkey_init(&key) >= 0); | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 97 || | 98 || ret = gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert, | || ~ | || | | |+------------->(24) ...to here | 99 | GNUTLS_X509_FMT_PEM, 0); | 100 | if (ret < 0) { | | ~ | | | | | (25) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 105 || ret = gnutls_x509_privkey_import(key, skey, GNUTLS_X509_FMT_PEM); | || ~ | || | | |+------------->(26) ...to here | 106 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 110 || ret = gnutls_certificate_set_x509_key(xcred, crt_list, crt_list_size, | || ~ | || | | |+------------->(28) ...to here | <------+ | 'doit': events 29-32 | | 179 | idx = import_key(x509_cred, &server_ca3_key, | | ^ | | | | | (29) returning to 'doit' from 'import_key' | 180 | &server_ca3_localhost_utf8_cert); | 181 | assert(idx == 1); | | ~ | | | | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 182 || | 183 || test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, | || ~ | || | | |+------->(31) ...to here | | (32) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 33-34 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (33) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (34) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 35-43 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (35) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (36) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(37) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (38) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(39) ...to here | 79 | if (ret < 0) | | ~ | | | | | (40) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(41) ...to here | | (42) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(43) ...to here | '_test_cli_serv': events 44-47 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (44) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(45) ...to here | | (46) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (47) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD crl_apis CCLD cert_verify_inv_utf8 CCLD no-extensions CCLD no-status-request CCLD hostname-check-utf8 CCLD pkcs8-key-decode-encrypted CCLD priority-mix CCLD pkcs7 CCLD send-data-before-handshake CCLD recv-data-before-handshake CCLD crt_inv_write CCLD x509sign-verify-error utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-12 | |set_known_dh_params_x509.c:55:6: | 55 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 69 | assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 70 || assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 71 || | 72 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(5) ...to here | 73 | GNUTLS_X509_FMT_PEM); | 74 | if (ret < 0) | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 77 || ret = gnutls_certificate_set_x509_key_mem( | || ~ | || | | |+------------->(7) ...to here |...... | 80 | if (ret < 0) { | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 85 || assert(gnutls_certificate_set_known_dh_params( | || ~ | || | | |+------->(9) ...to here | | (10) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 86 || x509_cred, GNUTLS_SEC_PARAM_LEGACY) >= 0); | 87 || test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA", | || ~ | || | | |+------->(11) ...to here | | (12) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 13-14 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (13) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (14) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 15-23 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (15) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(17) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (18) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(19) ...to here | 79 | if (ret < 0) | | ~ | | | | | (20) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(21) ...to here | | (22) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(23) ...to here | '_test_cli_serv': events 24-27 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (24) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(25) ...to here | | (26) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (27) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD rng-op-nonce utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 123 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 124 || | 125 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 132 || fail("error in fopen\n"); | 133 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 134 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 136 || fp) > 0); | 137 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 142 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-52 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | 148 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 151 || ocsp_subca3_unknown_pem.size, fp) > 0); | 152 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 153 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 154 || assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | | (32) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 155 || ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 156 || fclose(fp); | || ~ | || | | |+------->(33) ...to here |...... | 160 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 164 || remove(ocspfile1); | || ~ | || | | |+------->(35) ...to here | 165 | fp = fopen(ocspfile1, "wb"); | 166 | if (fp == NULL) | | ~ | | | | | (36) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 167 || fail("error in fopen\n"); | 168 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 169 || ocsp_subca3_unknown_pem.size, fp) > 0); | 170 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(39) ...to here | | (40) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 171 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 172 || fclose(fp); | || ~ | || | | |+------->(41) ...to here |...... | 176 | if (ret < 0) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 179 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(43) ...to here | 180 | GNUTLS_X509_FMT_PEM); | 181 | if (ret < 0) { | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 185 || t = gnutls_certificate_get_ocsp_expiration(xcred, 0, 0, 0); | || ~ | || | | |+----------->(45) ...to here | 186 | if (t != 1509625639) | | ~ | | | | | (46) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 189 || t = gnutls_certificate_get_ocsp_expiration(xcred, 0, 1, 0); | || ~ | || | | |+----------->(47) ...to here | 190 | if (t != 1509625639) | | ~ | | | | | (48) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 193 || t = gnutls_certificate_get_ocsp_expiration(xcred, 0, -1, 0); | || ~ | || | | |+----------->(49) ...to here | 194 | if (t != 1509625639) | | ~ | | | | | (50) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 197 || test_cli_serv(xcred, clicred, | || ~ | || | | |+------->(51) ...to here | | (52) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 53-54 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (53) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (54) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 55-63 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (55) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (56) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(57) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (58) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(59) ...to here | 79 | if (ret < 0) | | ~ | | | | | (60) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(61) ...to here | | (62) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(63) ...to here | '_test_cli_serv': events 64-67 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (64) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(65) ...to here | | (66) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (67) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_ocsp_multi_pem.c: In function 'doit': set_x509_ocsp_multi_pem.c:133:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 133 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 123 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 124 || | 125 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 130 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 131 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 132 || fail("error in fopen\n"); | 133 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_pem.c:135:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 135 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 123 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 124 || | 125 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 130 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 131 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 132 || fail("error in fopen\n"); | 133 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 134 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_pem.c:150:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 123 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 124 || | 125 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 132 || fail("error in fopen\n"); | 133 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 134 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 136 || fp) > 0); | 137 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 142 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 148 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_pem.c:150:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 123 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 124 || | 125 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 132 || fail("error in fopen\n"); | 133 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 134 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 136 || fp) > 0); | 137 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 142 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 148 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | (32) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | | | | | | | |+-------------------------------------------+ | 151 || ocsp_subca3_unknown_pem.size, fp) > 0); | 152 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | set_x509_ocsp_multi_pem.c:150:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 150 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 123 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 124 || | 125 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 132 || fail("error in fopen\n"); | 133 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 134 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 136 || fp) > 0); | 137 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 142 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 148 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | (34) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | | | | | | | |+-------------------------------------------+ | 151 || ocsp_subca3_unknown_pem.size, fp) > 0); | 152 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | | (32) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 153 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 154 || assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | || ~ | || | | |+------->(33) ...to here | set_x509_ocsp_multi_pem.c:168:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 168 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 123 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 124 || | 125 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 132 || fail("error in fopen\n"); | 133 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 134 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 136 || fp) > 0); | 137 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 142 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | 148 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 151 || ocsp_subca3_unknown_pem.size, fp) > 0); | 152 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 153 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 154 || assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | | (32) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 155 || ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 156 || fclose(fp); | || ~ | || | | |+------->(33) ...to here |...... | 160 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 164 || remove(ocspfile1); | || ~ | || | | |+------->(35) ...to here | 165 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (36) opened here | 166 | if (fp == NULL) | | ~ | | | | | (37) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (38) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 167 || fail("error in fopen\n"); | 168 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(39) ...to here | | (40) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (36) | set_x509_ocsp_multi_pem.c:168:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 168 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_pem.c:103:6: | 103 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 122 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 123 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 124 || | 125 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 126 | | 127 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_pem.c:127:21: | 127 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 131 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 132 || fail("error in fopen\n"); | 133 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 134 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 135 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 136 || fp) > 0); | 137 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 141 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 142 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 143 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 146 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-42 | |set_x509_ocsp_multi_pem.c:146:21: | 146 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 147 | fp = fopen(ocspfile1, "wb"); | 148 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 151 || ocsp_subca3_unknown_pem.size, fp) > 0); | 152 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 153 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 154 || assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | | (32) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 155 || ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 156 || fclose(fp); | || ~ | || | | |+------->(33) ...to here |...... | 160 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 164 || remove(ocspfile1); | || ~ | || | | |+------->(35) ...to here | 165 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (36) opened here | 166 | if (fp == NULL) | | ~ | | | | | (37) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (38) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 167 || fail("error in fopen\n"); | 168 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(39) ...to here | | (40) following 'true' branch... ->-+ | | (42) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (36) | | | | | | | |+-------------------------------------------+ | 169 || ocsp_subca3_unknown_pem.size, fp) > 0); | 170 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(41) ...to here | CCLD rng-op-random CCLD rng-op-key CCLD x509-dn-decode-compat CCLD ip-check CCLD mini-x509-ipaddr CCLD trust-store CCLD base64-raw CCLD random-art CCLD dhex509self CCLD dss-sig-val CCLD sign-pk-api CCLD tls-session-ext-override CCLD record-pad CCLD tls13-server-kx-neg CCLD gnutls_ext_raw_parse_dtls CCLD key-export-pkcs8 CCLD null_retrieve_function CCLD tls-record-size-limit CCLD tls-crt_type-neg utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-2 | |cert_verify_inv_utf8.c:162:6: | 162 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 167 | auto_parse(); | | ~ | | | | | (2) calling 'auto_parse' from 'doit' | +--> 'auto_parse': events 3-26 | | 66 | static void auto_parse(void) | | ^ | | | | | (3) entry to 'auto_parse' |...... | 86 | assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 87 || assert(gnutls_privkey_init(&key) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 88 || | 89 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(7) ...to here | | (8) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 90 || | 91 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(9) ...to here | 92 | GNUTLS_X509_FMT_PEM); | 93 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 96 || pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]); | || ~ | || | | |+----------------------->(11) ...to here |...... | 100 | if (ret < 0) { | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 105 || ret = gnutls_privkey_import_x509_raw(key, &server_ca3_key, | || ~ | || | | |+------------->(13) ...to here | 106 | GNUTLS_X509_FMT_PEM, NULL, 0); | 107 | if (ret < 0) { | | ~ | | | | | (14) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 111 || ret = gnutls_certificate_set_key(x509_cred, NULL, 0, pcert_list, | || ~ | || | | |+------------->(15) ...to here | 112 | pcert_list_size, key); | 113 | if (ret < 0) { | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 120 || assert(gnutls_privkey_init(&second_key) >= 0); | || ~ | || | | |+------->(17) ...to here | | (18) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 121 || | 122 || pcert_list_size = 2; | || ~ | || | | |+----------------------->(19) ...to here |...... | 126 | if (ret < 0) { | | ~ | | | | | (20) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 131 || ret = gnutls_privkey_import_x509_raw(second_key, &server_ca3_key, | || ~ | || | | |+------------->(21) ...to here | 132 | GNUTLS_X509_FMT_PEM, NULL, 0); | 133 | if (ret < 0) { | | ~ | | | | | (22) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 137 || ret = gnutls_certificate_set_key(x509_cred, NULL, 0, second_pcert, 1, | || ~ | || | | |+------------->(23) ...to here | 138 | second_key); | 139 | if (ret < 0) { | | ~ | | | | | (24) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 145 || test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL", | || ~ | || | | |+------->(25) ...to here | | (26) calling 'test_cli_serv_expect' from 'auto_parse' | +--> 'test_cli_serv_expect': events 27-28 | |utils-adv.c:305:6: | 305 | void test_cli_serv_expect(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (27) entry to 'test_cli_serv_expect' |...... | 310 | _test_cli_serv(server_cred, client_cred, serv_prio, cli_prio, host, | | ~ | | | | | (28) calling '_test_cli_serv' from 'test_cli_serv_expect' | +--> '_test_cli_serv': events 29-37 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (29) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (30) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(31) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (32) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(33) ...to here | 79 | if (ret < 0) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(35) ...to here | | (36) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(37) ...to here | '_test_cli_serv': events 38-41 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (38) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(39) ...to here | | (40) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (41) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || gnutls_global_set_time_function(mytime); | || ~ | || | | |+------->(5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 141 || gnutls_certificate_free_credentials(xcred); | || ~ | || | | |+------->(7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 144 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(9) ...to here | | (10) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || | 146 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(11) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 153 || success("Testing store of certificates\n"); | || ~ | || | | |+------->(13) ...to here | 154 | | 155 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-23 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 78 | if (fp == NULL) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 79 || fail("error in fopen\n"); | 80 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(17) ...to here | | (18) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 81 || assert(fwrite(key->data, 1, key->size, fp) > 0); | || ~ | || | | |+------->(19) ...to here | | (20) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 82 || fclose(fp); | || ~ | || | | |+------->(21) ...to here |...... | 86 | if (ret < 0) | | ~ | | | | | (22) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 90 || return ret; | || ~ | || | | |+-------------->(23) ...to here | <------+ | 'doit': events 24-25 | | 155 | idx = set_cert(xcred, &server_ca3_key, | | ^ | | | | | (24) returning to 'doit' from 'set_cert' | 156 | &server_ca3_localhost6_cert_chain); | 157 | verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2); | | ~ | | | | | (25) calling 'verify_written_cert' from 'doit' | +--> 'verify_written_cert': events 26-28 | | 93 | static void verify_written_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (26) entry to 'verify_written_cert' |...... | 102 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 107 || compare(&tcert, cert->data); | || ~ | || | | |+--------------------------->(28) ...to here | 'verify_written_cert': event 29 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (29) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 30-32 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (30) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (31) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 59 || if (der->size != new_der.size || | || ~ | || | | |+-------------->(32) ...to here | 'compare': events 33-34 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 60 || memcmp(der->data, new_der.data, der->size) != 0) { | || ~ | || | | |+----------->(34) ...to here | 'compare': events 35-36 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (35) following 'false' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 64 || gnutls_free(new_der.data); | || ~ | || | | |+------->(36) ...to here | <------+ | 'verify_written_cert': events 37-41 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (37) returning to 'verify_written_cert' from 'compare' | 108 | | 109 | if (ncerts > 1) { | | ~ | | | | | (38) following 'true' branch (when 'ncerts_13(D) > 1')... ->-+ | | | | | | | |+------------------------------------------------------------------------+ | 110 || ret = gnutls_certificate_get_crt_raw(xcred, idx, 1, &tcert); | || ~ | || | | |+--------------------->(39) ...to here | 111 | if (ret < 0) { | | ~ | | | | | (40) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 118 || compare(&tcert, cert->data + 2); | || ~ | || | | |+----------------------------------->(41) ...to here | 'verify_written_cert': event 42 | | 118 | compare(&tcert, cert->data + 2); | | ^ | | | | | (42) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 43-45 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (43) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 59 || if (der->size != new_der.size || | || ~ | || | | |+-------------->(45) ...to here | 'compare': events 46-47 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (46) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 60 || memcmp(der->data, new_der.data, der->size) != 0) { | || ~ | || | | |+----------->(47) ...to here | 'compare': events 48-49 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (48) following 'false' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 64 || gnutls_free(new_der.data); | || ~ | || | | |+------->(49) ...to here | <------+ | 'verify_written_cert': event 50 | | 118 | compare(&tcert, cert->data + 2); | | ^ | | | | | (50) returning to 'verify_written_cert' from 'compare' | <------+ | 'doit': events 51-54 | | 157 | verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2); | | ^ | | | | | (51) returning to 'doit' from 'verify_written_cert' | 158 | assert(idx == 0); | | ~ | | | | | (52) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 159 || | 160 || success("Tested store of %d\n", idx); | || ~ | || | | |+------->(53) ...to here | 161 | | 162 | idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert); | | ~ | | | | | (54) calling 'set_cert' from 'doit' | +--> 'set_cert': events 55-63 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (55) entry to 'set_cert' |...... | 78 | if (fp == NULL) | | ~ | | | | | (56) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 79 || fail("error in fopen\n"); | 80 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(57) ...to here | | (58) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 81 || assert(fwrite(key->data, 1, key->size, fp) > 0); | || ~ | || | | |+------->(59) ...to here | | (60) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 82 || fclose(fp); | || ~ | || | | |+------->(61) ...to here |...... | 86 | if (ret < 0) | | ~ | | | | | (62) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 90 || return ret; | || ~ | || | | |+-------------->(63) ...to here | <------+ | 'doit': events 64-65 | | 162 | idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert); | | ^ | | | | | (64) returning to 'doit' from 'set_cert' | 163 | verify_written_cert(xcred, idx, &server_ca3_localhost_cert, 1); | | ~ | | | | | (65) calling 'verify_written_cert' from 'doit' | +--> 'verify_written_cert': events 66-68 | | 93 | static void verify_written_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (66) entry to 'verify_written_cert' |...... | 102 | if (ret < 0) { | | ~ | | | | | (67) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 107 || compare(&tcert, cert->data); | || ~ | || | | |+--------------------------->(68) ...to here | 'verify_written_cert': event 69 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (69) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 70-72 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (70) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (71) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 59 || if (der->size != new_der.size || | || ~ | || | | |+-------------->(72) ...to here | 'compare': events 73-74 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (73) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 60 || memcmp(der->data, new_der.data, der->size) != 0) { | || ~ | || | | |+----------->(74) ...to here | 'compare': events 75-76 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (75) following 'false' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 64 || gnutls_free(new_der.data); | || ~ | || | | |+------->(76) ...to here | <------+ | 'verify_written_cert': events 77-79 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (77) returning to 'verify_written_cert' from 'compare' | 108 | | 109 | if (ncerts > 1) { | | ~ | | | | | (78) following 'false' branch (when 'ncerts_13(D) <= 1')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 120 ||} | ||~ | ||| | |+(79) ...to here | <------+ | 'doit': events 80-83 | | 163 | verify_written_cert(xcred, idx, &server_ca3_localhost_cert, 1); | | ^ | | | | | (80) returning to 'doit' from 'verify_written_cert' | 164 | assert(idx == 1); | | ~ | | | | | (81) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || | 166 || success("Tested store of %d\n", idx); | || ~ | || | | |+------->(82) ...to here | 167 | | 168 | test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (83) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 84-85 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (84) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (85) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 86-94 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (86) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (87) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(88) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (89) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(90) ...to here | 79 | if (ret < 0) | | ~ | | | | | (91) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(92) ...to here | | (93) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(94) ...to here | '_test_cli_serv': events 95-98 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (95) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(96) ...to here | | (97) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (98) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file.c: In function 'set_cert': set_x509_key_file.c:80:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || gnutls_global_set_time_function(mytime); | || ~ | || | | |+------->(5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 141 || gnutls_certificate_free_credentials(xcred); | || ~ | || | | |+------->(7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 144 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(9) ...to here | | (10) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || | 146 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(11) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 153 || success("Testing store of certificates\n"); | || ~ | || | | |+------->(13) ...to here | 154 | | 155 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-16 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 75 | certfile = get_tmpname(NULL); | | ~ | | | | | (16) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 17-19 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (17) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (18) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(19) ...to here | <------+ | 'set_cert': events 20-25 | |set_x509_key_file.c:75:20: | 75 | certfile = get_tmpname(NULL); | | ^ | | | | | (20) returning to 'set_cert' from 'get_tmpname' | 76 | | 77 | fp = fopen(certfile, "w"); | | ~ | | | | | (21) opened here | 78 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (23) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 79 || fail("error in fopen\n"); | 80 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(24) ...to here | | (25) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (21) | set_x509_key_file.c:80:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || gnutls_global_set_time_function(mytime); | || ~ | || | | |+------->(5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 141 || gnutls_certificate_free_credentials(xcred); | || ~ | || | | |+------->(7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 144 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(9) ...to here | | (10) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || | 146 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(11) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 153 || success("Testing store of certificates\n"); | || ~ | || | | |+------->(13) ...to here | 154 | | 155 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-16 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 75 | certfile = get_tmpname(NULL); | | ~ | | | | | (16) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 17-19 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (17) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (18) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(19) ...to here | <------+ | 'set_cert': events 20-27 | |set_x509_key_file.c:75:20: | 75 | certfile = get_tmpname(NULL); | | ^ | | | | | (20) returning to 'set_cert' from 'get_tmpname' | 76 | | 77 | fp = fopen(certfile, "w"); | | ~ | | | | | (21) opened here | 78 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (23) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 79 || fail("error in fopen\n"); | 80 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(24) ...to here | | (25) following 'true' branch... ->-+ | | (27) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (21) | | | | | | | |+-------------------------------------------+ | 81 || assert(fwrite(key->data, 1, key->size, fp) > 0); | || ~ | || | | |+------->(26) ...to here | utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 127 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 129 || fp) > 0); | 130 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 135 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 143 || fail("error in fopen\n"); | 144 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 147 || fp) > 0); | 148 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 153 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(37) ...to here | <------+ | 'doit': events 38-45 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | 159 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 160 || fail("error in fopen\n"); | 161 || assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | || ~ | || | | |+------->(40) ...to here | | (41) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || ocsp_ca3_localhost_unknown.size, fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(42) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 171 || ocspfile2 = get_tmpname(ocspname2); | || ~ | || | | |+------------------->(44) ...to here | | (45) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 46-48 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (46) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (47) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(48) ...to here | <------+ | 'doit': events 49-56 | |set_x509_ocsp_multi_unknown.c:171:21: | 171 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (49) returning to 'doit' from 'get_tmpname' | 172 | fp = fopen(ocspfile2, "wb"); | 173 | if (fp == NULL) | | ~ | | | | | (50) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 174 || fail("error in fopen\n"); | 175 || assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | || ~ | || | | |+------->(51) ...to here | | (52) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || ocsp_ca3_localhost6_unknown.size, fp) > 0); | 177 || fclose(fp); | || ~ | || | | |+------->(53) ...to here |...... | 181 | if (ret < 0) | | ~ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 185 || ocspfile3 = get_tmpname(ocspname3); | || ~ | || | | |+------------------->(55) ...to here | | (56) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 57-59 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (57) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (58) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(59) ...to here | <------+ | 'doit': events 60-81 | |set_x509_ocsp_multi_unknown.c:185:21: | 185 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (60) returning to 'doit' from 'get_tmpname' | 186 | fp = fopen(ocspfile3, "wb"); | 187 | if (fp == NULL) | | ~ | | | | | (61) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 188 || fail("error in fopen\n"); | 189 || assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, | || ~ | || | | |+------->(62) ...to here | | (63) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 190 || ocsp_ca3_localhost_unknown_sha1.size, fp) > 0); | 191 || fclose(fp); | || ~ | || | | |+------->(64) ...to here |...... | 195 | if (ret != 0) | | ~ | | | | | (65) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 199 || ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, | || ~ | || | | |+------------->(66) ...to here | 200 | index2); | 201 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (67) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 206 || ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, | || ~ | || | | |+------------->(68) ...to here | 207 | index1); | 208 | if (ret < 0) | | ~ | | | | | (69) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 212 || fp = fopen(ocspfile3, "wb"); | || ~ | || | | |+------------>(70) ...to here | 213 | if (fp == NULL) | | ~ | | | | | (71) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 214 || fail("error in fopen\n"); | 215 || assert(fwrite(ocsp_subca3_unknown.data, 1, ocsp_subca3_unknown.size, | || ~ | || | | |+------->(72) ...to here | | (73) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 216 || fp) > 0); | 217 || fclose(fp); | || ~ | || | | |+------->(74) ...to here |...... | 221 | if (ret < 0) | | ~ | | | | | (75) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 224 || ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, | || ~ | || | | |+------------->(76) ...to here | 225 | index2); | 226 | if (ret < 0) | | ~ | | | | | (77) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 229 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(78) ...to here | 230 | GNUTLS_X509_FMT_PEM); | 231 | if (ret < 0) { | | ~ | | | | | (79) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 235 || test_cli_serv(xcred, clicred, | || ~ | || | | |+------->(80) ...to here | | (81) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 82-83 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (82) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (83) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 84-92 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (84) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (85) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(86) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (87) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(88) ...to here | 79 | if (ret < 0) | | ~ | | | | | (89) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(90) ...to here | | (91) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(92) ...to here | '_test_cli_serv': events 93-96 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (93) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(94) ...to here | | (95) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (96) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_ocsp_multi_unknown.c: In function 'doit': set_x509_ocsp_multi_unknown.c:126:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 126 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 122 | | 123 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 124 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_unknown.c:128:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 128 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 122 | | 123 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 124 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 127 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_unknown.c:144:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 144 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 127 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 129 || fp) > 0); | 130 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 135 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 140 | | 141 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 142 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 143 || fail("error in fopen\n"); | 144 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_unknown.c:146:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 146 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 127 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 129 || fp) > 0); | 130 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 135 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 140 | | 141 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 142 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 143 || fail("error in fopen\n"); | 144 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_unknown.c:161:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 161 | assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 127 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 129 || fp) > 0); | 130 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 135 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 143 || fail("error in fopen\n"); | 144 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 147 || fp) > 0); | 148 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 153 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(37) ...to here | <------+ | 'doit': events 38-43 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (39) opened here | 159 | if (fp == NULL) | | ~ | | | | | (40) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (41) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 160 || fail("error in fopen\n"); | 161 || assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | || ~ | || | | |+------->(42) ...to here | | (43) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (39) | set_x509_ocsp_multi_unknown.c:175:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 175 | assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 127 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 129 || fp) > 0); | 130 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 135 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 143 || fail("error in fopen\n"); | 144 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 147 || fp) > 0); | 148 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 153 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(37) ...to here | <------+ | 'doit': events 38-45 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | 159 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 160 || fail("error in fopen\n"); | 161 || assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | || ~ | || | | |+------->(40) ...to here | | (41) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || ocsp_ca3_localhost_unknown.size, fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(42) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 171 || ocspfile2 = get_tmpname(ocspname2); | || ~ | || | | |+------------------->(44) ...to here | | (45) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 46-48 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (46) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (47) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(48) ...to here | <------+ | 'doit': events 49-54 | |set_x509_ocsp_multi_unknown.c:171:21: | 171 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (49) returning to 'doit' from 'get_tmpname' | 172 | fp = fopen(ocspfile2, "wb"); | | ~ | | | | | (50) opened here | 173 | if (fp == NULL) | | ~ | | | | | (51) assuming 'fopen (get_tmpname (&ocspname2), "wb")' is non-NULL | | (52) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 174 || fail("error in fopen\n"); | 175 || assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | || ~ | || | | |+------->(53) ...to here | | (54) 'fopen (get_tmpname (&ocspname2), "wb")' leaks here; was opened at (50) | set_x509_ocsp_multi_unknown.c:189:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 189 | assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 127 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 129 || fp) > 0); | 130 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 135 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 143 || fail("error in fopen\n"); | 144 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 147 || fp) > 0); | 148 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 153 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(37) ...to here | <------+ | 'doit': events 38-45 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | 159 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 160 || fail("error in fopen\n"); | 161 || assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | || ~ | || | | |+------->(40) ...to here | | (41) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || ocsp_ca3_localhost_unknown.size, fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(42) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 171 || ocspfile2 = get_tmpname(ocspname2); | || ~ | || | | |+------------------->(44) ...to here | | (45) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 46-48 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (46) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (47) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(48) ...to here | <------+ | 'doit': events 49-56 | |set_x509_ocsp_multi_unknown.c:171:21: | 171 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (49) returning to 'doit' from 'get_tmpname' | 172 | fp = fopen(ocspfile2, "wb"); | 173 | if (fp == NULL) | | ~ | | | | | (50) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 174 || fail("error in fopen\n"); | 175 || assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | || ~ | || | | |+------->(51) ...to here | | (52) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || ocsp_ca3_localhost6_unknown.size, fp) > 0); | 177 || fclose(fp); | || ~ | || | | |+------->(53) ...to here |...... | 181 | if (ret < 0) | | ~ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 185 || ocspfile3 = get_tmpname(ocspname3); | || ~ | || | | |+------------------->(55) ...to here | | (56) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 57-59 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (57) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (58) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(59) ...to here | <------+ | 'doit': events 60-65 | |set_x509_ocsp_multi_unknown.c:185:21: | 185 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (60) returning to 'doit' from 'get_tmpname' | 186 | fp = fopen(ocspfile3, "wb"); | | ~ | | | | | (61) opened here | 187 | if (fp == NULL) | | ~ | | | | | (62) assuming 'fopen (get_tmpname (&ocspname3), "wb")' is non-NULL | | (63) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 188 || fail("error in fopen\n"); | 189 || assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, | || ~ | || | | |+------->(64) ...to here | | (65) 'fopen (get_tmpname (&ocspname3), "wb")' leaks here; was opened at (61) | set_x509_ocsp_multi_unknown.c:215:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 215 | assert(fwrite(ocsp_subca3_unknown.data, 1, ocsp_subca3_unknown.size, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_unknown.c:92:6: | 92 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 115 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 116 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 117 || | 118 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 121 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_unknown.c:121:21: | 121 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 124 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 125 || fail("error in fopen\n"); | 126 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 127 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 128 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 129 || fp) > 0); | 130 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 134 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 135 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 136 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 139 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_unknown.c:139:21: | 139 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 142 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 143 || fail("error in fopen\n"); | 144 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 146 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 147 || fp) > 0); | 148 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 152 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 153 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 154 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 157 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(37) ...to here | <------+ | 'doit': events 38-45 | |set_x509_ocsp_multi_unknown.c:157:21: | 157 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 158 | fp = fopen(ocspfile1, "wb"); | 159 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 160 || fail("error in fopen\n"); | 161 || assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, | || ~ | || | | |+------->(40) ...to here | | (41) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || ocsp_ca3_localhost_unknown.size, fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(42) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 171 || ocspfile2 = get_tmpname(ocspname2); | || ~ | || | | |+------------------->(44) ...to here | | (45) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 46-48 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (46) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (47) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(48) ...to here | <------+ | 'doit': events 49-56 | |set_x509_ocsp_multi_unknown.c:171:21: | 171 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (49) returning to 'doit' from 'get_tmpname' | 172 | fp = fopen(ocspfile2, "wb"); | 173 | if (fp == NULL) | | ~ | | | | | (50) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 174 || fail("error in fopen\n"); | 175 || assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, | || ~ | || | | |+------->(51) ...to here | | (52) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || ocsp_ca3_localhost6_unknown.size, fp) > 0); | 177 || fclose(fp); | || ~ | || | | |+------->(53) ...to here |...... | 181 | if (ret < 0) | | ~ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 185 || ocspfile3 = get_tmpname(ocspname3); | || ~ | || | | |+------------------->(55) ...to here | | (56) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 57-59 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (57) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (58) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(59) ...to here | <------+ | 'doit': events 60-75 | |set_x509_ocsp_multi_unknown.c:185:21: | 185 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (60) returning to 'doit' from 'get_tmpname' | 186 | fp = fopen(ocspfile3, "wb"); | 187 | if (fp == NULL) | | ~ | | | | | (61) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 188 || fail("error in fopen\n"); | 189 || assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, | || ~ | || | | |+------->(62) ...to here | | (63) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 190 || ocsp_ca3_localhost_unknown_sha1.size, fp) > 0); | 191 || fclose(fp); | || ~ | || | | |+------->(64) ...to here |...... | 195 | if (ret != 0) | | ~ | | | | | (65) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 199 || ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, | || ~ | || | | |+------------->(66) ...to here | 200 | index2); | 201 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (67) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 206 || ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, | || ~ | || | | |+------------->(68) ...to here | 207 | index1); | 208 | if (ret < 0) | | ~ | | | | | (69) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 212 || fp = fopen(ocspfile3, "wb"); | || ~ | || | | |+------------>(70) ...to here | | (71) opened here | 213 | if (fp == NULL) | | ~ | | | | | (72) assuming 'fopen (get_tmpname (&ocspname3), "wb")' is non-NULL | | (73) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 214 || fail("error in fopen\n"); | 215 || assert(fwrite(ocsp_subca3_unknown.data, 1, ocsp_subca3_unknown.size, | || ~ | || | | |+------->(74) ...to here | | (75) 'fopen (get_tmpname (&ocspname3), "wb")' leaks here; was opened at (71) | CCLD resume-with-stek-expiration CCLD resume-with-previous-stek CCLD rawpk-api CCLD tls-record-size-limit-asym CCLD dh-compute CCLD ecdh-compute CCLD sign-verify-data-newapi utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |record-pad.c:374:6: | 374 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 377 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 317 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 321 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD sign-verify-newapi CCLD sign-verify-deterministic CCLD iov utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 177 || fp) > 0); | 178 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-71 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 184 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 185 || fail("error in fopen\n"); | 186 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 187 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 192 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 193 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 194 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here |...... | 197 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 198 || fail("error in fopen\n"); | 199 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(54) ...to here | | (55) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 200 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 201 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(56) ...to here | | (57) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 202 || fp) > 0); | 203 || fclose(fp); | || ~ | || | | |+------->(58) ...to here |...... | 208 | if (ret < 0) | | ~ | | | | | (59) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 212 || ret = gnutls_certificate_set_ocsp_status_request_function2( | || ~ | || | | |+------------->(60) ...to here | 213 | xcred, index2, ocsp_func, &ocsp_resp2); | 214 | if (ret < 0) | | ~ | | | | | (61) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 218 || ret = gnutls_certificate_set_ocsp_status_request_function2( | || ~ | || | | |+------------->(62) ...to here | 219 | xcred, index3, ocsp_func, &ocsp_resp3); | 220 | if (ret < 0) | | ~ | | | | | (63) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 224 || assert(gnutls_certificate_set_ocsp_status_request_function2( | || ~ | || | | |+------->(64) ...to here | | (65) following 'true' branch... ->-+ | | | |...... | | | | |+-------------------------------------------+ | 230 || gnutls_certificate_set_verify_flags(clicred, | || ~ | || | | |+------->(66) ...to here | 231 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 232 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (67) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 236 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(68) ...to here | 237 | GNUTLS_X509_FMT_PEM); | 238 | if (ret < 0) { | | ~ | | | | | (69) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 242 || success("TLS1.2 + resp1\n"); | || ~ | || | | |+------->(70) ...to here | 243 | test_cli_serv(xcred, clicred, | | ~ | | | | | (71) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 72-73 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (72) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (73) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 74-82 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (74) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (75) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(76) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (77) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(78) ...to here | 79 | if (ret < 0) | | ~ | | | | | (79) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(80) ...to here | | (81) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(82) ...to here | '_test_cli_serv': events 83-86 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (83) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(84) ...to here | | (85) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (86) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file_ocsp_multi2.c: In function 'doit': set_x509_key_file_ocsp_multi2.c:141:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 141 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 138 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 139 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_key_file_ocsp_multi2.c:143:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 143 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 138 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 139 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_key_file_ocsp_multi2.c:159:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 159 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 155 | | 156 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 157 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_key_file_ocsp_multi2.c:161:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 161 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 155 | | 156 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 157 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_key_file_ocsp_multi2.c:174:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 174 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-38 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here | 170 | | 171 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (34) opened here | 172 | if (fp == NULL) | | ~ | | | | | (35) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (36) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(37) ...to here | | (38) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (34) | set_x509_key_file_ocsp_multi2.c:176:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 176 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here | 170 | | 171 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (34) opened here | 172 | if (fp == NULL) | | ~ | | | | | (35) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (36) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(39) ...to here | | (40) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (34) | set_x509_key_file_ocsp_multi2.c:186:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 186 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 177 || fp) > 0); | 178 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-49 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' | 182 | | 183 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (45) opened here | 184 | if (fp == NULL) | | ~ | | | | | (46) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (47) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 185 || fail("error in fopen\n"); | 186 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (45) | set_x509_key_file_ocsp_multi2.c:187:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 187 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 177 || fp) > 0); | 178 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-51 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' | 182 | | 183 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (45) opened here | 184 | if (fp == NULL) | | ~ | | | | | (46) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (47) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 185 || fail("error in fopen\n"); | 186 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 187 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(50) ...to here | | (51) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (45) | set_x509_key_file_ocsp_multi2.c:199:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 199 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 177 || fp) > 0); | 178 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-57 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 184 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 185 || fail("error in fopen\n"); | 186 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 187 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 192 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 193 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 194 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here | 195 | | 196 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (53) opened here | 197 | if (fp == NULL) | | ~ | | | | | (54) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (55) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 198 || fail("error in fopen\n"); | 199 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(56) ...to here | | (57) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (53) | set_x509_key_file_ocsp_multi2.c:201:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 201 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_key_file_ocsp_multi2.c:109:6: | 109 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 130 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 131 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || | 133 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 134 | | 135 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_key_file_ocsp_multi2.c:135:21: | 135 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 140 || fail("error in fopen\n"); | 141 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 142 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 143 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 144 || fp) > 0); | 145 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 149 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 150 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 151 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 154 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_key_file_ocsp_multi2.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 161 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || fp) > 0); | 163 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 167 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 169 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 172 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 176 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 177 || fp) > 0); | 178 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 181 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_key_file_ocsp_multi2.c:181:21: | 181 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 184 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 185 || fail("error in fopen\n"); | 186 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 187 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 192 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 193 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 194 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here | 195 | | 196 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (53) opened here | 197 | if (fp == NULL) | | ~ | | | | | (54) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (55) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 198 || fail("error in fopen\n"); | 199 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(56) ...to here | | (57) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 200 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 201 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(58) ...to here | | (59) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (53) | CCLD aead-cipher-vec CCLD tls13-without-timeout-func CCLD buffer CCLD status-request-revoked CCLD set_x509_ocsp_multi_cli CCLD kdf-api CCLD keylog-func CCLD handshake-write CCLD x509cert-dntypes CCLD id-on-xmppAddr CCLD tls13-compat-mode CCLD ciphersuite-name utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |null_retrieve_function.c:67:6: | 67 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 86 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 91 || gnutls_certificate_allocate_credentials(&clicred); | || ~ | || | | |+------->(3) ...to here |...... | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-13 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(11) ...to here | | (12) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(13) ...to here | '_test_cli_serv': events 14-17 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (14) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(15) ...to here | | (16) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (17) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |null_retrieve_function.c:67:6: | 67 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 86 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 91 || gnutls_certificate_allocate_credentials(&clicred); | || ~ | || | | |+------->(3) ...to here |...... | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-20 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(11) ...to here | | (12) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(13) ...to here | 84 | assert(_gnutls_server_name_set_raw( | | ~ | | | | | (14) following 'true' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------+ | 94 || ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | || ~ | || | | |+------------->(15) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 99 || ret = gnutls_priority_set_direct(client, cli_prio, NULL); | || ~ | || | | |+------------->(17) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 103 || gnutls_transport_set_push_function(client, client_push); | || ~ | || | | |+------->(19) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (20) following 'false' branch... ->-+ | | | | '_test_cli_serv': event 21 | |lto1: | (21): ...to here | '_test_cli_serv': event 22 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (22) following 'true' branch... ->-+ | | | | '_test_cli_serv': events 23-29 | | | | | |+---------------------------------------------------+ | 110 || HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | || ^ | || | | |+--------------->(23) ...to here | | (24) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------------+ | 111 || goto cleanup; | || ~ | || | | |+--------------->(25) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (26) following 'false' branch (when 'client_cb_166(D)' is NULL)... ->-+ | | | | | | | |+---------------------------------------------------------------------------------+ | 178 || client_cb(client, priv); | 179 || if (server_cb) | || ~ | || | | |+---------->(27) ...to here | | (28) following 'false' branch (when 'server_cb_169(D)' is NULL)... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------+ | 182 || gnutls_deinit(client); | || ~ | || | | |+------->(29) ...to here | <------+ | 'doit': events 30-31 | |null_retrieve_function.c:94:9: | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (30) returning to 'doit' from '_test_cli_serv' |...... | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (31) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 32-40 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (32) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(34) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (35) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(36) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (37) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(38) ...to here | | (39) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(40) ...to here | '_test_cli_serv': events 41-44 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (41) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(42) ...to here | | (43) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (44) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-4 | |null_retrieve_function.c:67:6: | 67 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 86 | if (ret < 0) { | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 91 || gnutls_certificate_allocate_credentials(&clicred); | || ~ | || | | |+------->(3) ...to here |...... | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (4) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 5-20 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (5) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(7) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (8) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(9) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(11) ...to here | | (12) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(13) ...to here |...... | 89 | assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, | | ~ | | | | | (14) following 'true' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------+ | 94 || ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | || ~ | || | | |+------------->(15) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 99 || ret = gnutls_priority_set_direct(client, cli_prio, NULL); | || ~ | || | | |+------------->(17) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 103 || gnutls_transport_set_push_function(client, client_push); | || ~ | || | | |+------->(19) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (20) following 'false' branch... ->-+ | | | | '_test_cli_serv': event 21 | |lto1: | (21): ...to here | '_test_cli_serv': event 22 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (22) following 'true' branch... ->-+ | | | | '_test_cli_serv': events 23-29 | | | | | |+---------------------------------------------------+ | 110 || HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | || ^ | || | | |+--------------->(23) ...to here | | (24) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------------+ | 111 || goto cleanup; | || ~ | || | | |+--------------->(25) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (26) following 'false' branch (when 'client_cb_166(D)' is NULL)... ->-+ | | | | | | | |+---------------------------------------------------------------------------------+ | 178 || client_cb(client, priv); | 179 || if (server_cb) | || ~ | || | | |+---------->(27) ...to here | | (28) following 'false' branch (when 'server_cb_169(D)' is NULL)... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------+ | 182 || gnutls_deinit(client); | || ~ | || | | |+------->(29) ...to here | <------+ | 'doit': events 30-31 | |null_retrieve_function.c:94:9: | 94 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (30) returning to 'doit' from '_test_cli_serv' |...... | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (31) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 32-47 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (32) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(34) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (35) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(36) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (37) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(38) ...to here | | (39) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(40) ...to here |...... | 89 | assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, | | ~ | | | | | (41) following 'true' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------------------+ | 94 || ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, | || ~ | || | | |+------------->(42) ...to here | 95 | client_cred); | 96 | if (ret < 0) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 99 || ret = gnutls_priority_set_direct(client, cli_prio, NULL); | || ~ | || | | |+------------->(44) ...to here | 100 | if (ret < 0) { | | ~ | | | | | (45) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 103 || gnutls_transport_set_push_function(client, client_push); | || ~ | || | | |+------->(46) ...to here |...... | 107 | if (cli_err == 0 && serv_err == 0) { | | ~ | | | | | (47) following 'false' branch... ->-+ | | | | '_test_cli_serv': event 48 | |lto1: | (48): ...to here | '_test_cli_serv': event 49 | | 110 | HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | | ^ | | | | | (49) following 'true' branch... ->-+ | | | | '_test_cli_serv': events 50-56 | | | | | |+---------------------------------------------------+ | 110 || HANDSHAKE_EXPECT(client, server, cli_err, serv_err); | || ^ | || | | |+--------------->(50) ...to here | | (51) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------------+ | 111 || goto cleanup; | || ~ | || | | |+--------------->(52) ...to here |...... | 177 | if (client_cb) | | ~ | | | | | (53) following 'false' branch (when 'client_cb_166(D)' is NULL)... ->-+ | | | | | | | |+---------------------------------------------------------------------------------+ | 178 || client_cb(client, priv); | 179 || if (server_cb) | || ~ | || | | |+---------->(54) ...to here | | (55) following 'false' branch (when 'server_cb_169(D)' is NULL)... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------+ | 182 || gnutls_deinit(client); | || ~ | || | | |+------->(56) ...to here | <------+ | 'doit': events 57-58 | |null_retrieve_function.c:102:9: | 102 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ^ | | | | | (57) returning to 'doit' from '_test_cli_serv' |...... | 110 | _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", | | ~ | | | | | (58) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 59-67 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (59) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (60) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(61) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (62) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(63) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (64) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(65) ...to here | | (66) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(67) ...to here | '_test_cli_serv': events 68-71 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (68) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(69) ...to here | | (70) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (71) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ CCLD x509-upnconstraint CCLD xts-key-check CCLD cipher-padding CCLD pkcs7-verify-double-free CCLD fips-rsa-sizes CCLD tls12-rehandshake-ticket CCLD pathbuf CCLD tls-force-ems CCLD psk-importer CCLD privkey-derive CCLD dh-compute2 CCLD ecdh-compute2 CCLD tls-channel-binding CCLD strict-der CCLD system-prio-file utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || fp) > 0); | 166 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 181 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here |...... | 185 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(54) ...to here | | (55) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(56) ...to here | | (57) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 190 || fp) > 0); | 191 || fclose(fp); | || ~ | || | | |+------->(58) ...to here |...... | 194 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (59) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 60-62 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (60) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (61) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(62) ...to here | <------+ | 'doit': events 63-72 | |set_x509_ocsp_multi_invalid.c:194:21: | 194 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (63) returning to 'doit' from 'get_tmpname' | 195 | fp = fopen(ocspfile1, "wb"); | 196 | if (fp == NULL) | | ~ | | | | | (64) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 197 || fail("error in fopen\n"); | 198 || assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | || ~ | || | | |+------->(65) ...to here | | (66) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 199 || fclose(fp); | || ~ | || | | |+------->(67) ...to here |...... | 203 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (68) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 207 || gnutls_certificate_set_flags( | || ~ | || | | |+------->(69) ...to here |...... | 213 | if (ret < 0) | | ~ | | | | | (70) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 217 || ocspfile2 = get_tmpname(ocspname2); | || ~ | || | | |+------------------->(71) ...to here | | (72) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 73-75 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (73) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (74) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(75) ...to here | <------+ | 'doit': events 76-83 | |set_x509_ocsp_multi_invalid.c:217:21: | 217 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (76) returning to 'doit' from 'get_tmpname' | 218 | fp = fopen(ocspfile2, "wb"); | 219 | if (fp == NULL) | | ~ | | | | | (77) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 220 || fail("error in fopen\n"); | 221 || assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0); | || ~ | || | | |+------->(78) ...to here | | (79) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 222 || fclose(fp); | || ~ | || | | |+------->(80) ...to here |...... | 226 | if (ret < 0) | | ~ | | | | | (81) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 230 || ocspfile3 = get_tmpname(ocspname3); | || ~ | || | | |+------------------->(82) ...to here | | (83) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 84-86 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (84) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (85) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(86) ...to here | <------+ | 'doit': events 87-100 | |set_x509_ocsp_multi_invalid.c:230:21: | 230 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (87) returning to 'doit' from 'get_tmpname' | 231 | fp = fopen(ocspfile3, "wb"); | 232 | if (fp == NULL) | | ~ | | | | | (88) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 233 || fail("error in fopen\n"); | 234 || assert(fwrite(ocsp_resp3.data, 1, ocsp_resp3.size, fp) > 0); | || ~ | || | | |+------->(89) ...to here | | (90) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 235 || fclose(fp); | || ~ | || | | |+------->(91) ...to here |...... | 239 | if (ret < 0) | | ~ | | | | | (92) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 243 || assert(gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, | || ~ | || | | |+------->(93) ...to here | | (94) following 'true' branch... ->-+ | | | |...... | | | | |+-------------------------------------------+ | 249 || gnutls_certificate_set_verify_flags(clicred, | || ~ | || | | |+------->(95) ...to here | 250 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 251 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (96) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 255 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(97) ...to here | 256 | GNUTLS_X509_FMT_PEM); | 257 | if (ret < 0) { | | ~ | | | | | (98) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 261 || test_cli_serv(xcred, clicred, | || ~ | || | | |+------->(99) ...to here | | (100) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 101-102 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (101) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (102) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 103-111 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (103) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (104) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(105) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (106) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(107) ...to here | 79 | if (ret < 0) | | ~ | | | | | (108) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(109) ...to here | | (110) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+--------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(111) ...to here | '_test_cli_serv': events 112-115 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (112) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(113) ...to here | | (114) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (115) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_ocsp_multi_invalid.c: In function 'doit': set_x509_ocsp_multi_invalid.c:129:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 129 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-17 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 126 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 127 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_invalid.c:131:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 131 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-19 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 126 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 127 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | set_x509_ocsp_multi_invalid.c:147:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 147 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 143 | | 144 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 145 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_invalid.c:149:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 143 | | 144 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 145 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_invalid.c:162:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 162 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-38 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here | 158 | | 159 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (34) opened here | 160 | if (fp == NULL) | | ~ | | | | | (35) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (36) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(37) ...to here | | (38) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (34) | set_x509_ocsp_multi_invalid.c:164:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 164 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here | 158 | | 159 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (34) opened here | 160 | if (fp == NULL) | | ~ | | | | | (35) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (36) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(39) ...to here | | (40) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (34) | set_x509_ocsp_multi_invalid.c:174:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 174 | assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || fp) > 0); | 166 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-49 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' | 170 | | 171 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (45) opened here | 172 | if (fp == NULL) | | ~ | | | | | (46) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (47) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (45) | set_x509_ocsp_multi_invalid.c:175:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 175 | assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || fp) > 0); | 166 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-51 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' | 170 | | 171 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (45) opened here | 172 | if (fp == NULL) | | ~ | | | | | (46) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (47) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(50) ...to here | | (51) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (45) | set_x509_ocsp_multi_invalid.c:187:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 187 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || fp) > 0); | 166 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-57 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 181 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here | 183 | | 184 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (53) opened here | 185 | if (fp == NULL) | | ~ | | | | | (54) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (55) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(56) ...to here | | (57) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (53) | set_x509_ocsp_multi_invalid.c:189:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 189 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || fp) > 0); | 166 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 181 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here | 183 | | 184 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (53) opened here | 185 | if (fp == NULL) | | ~ | | | | | (54) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (55) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(56) ...to here | | (57) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(58) ...to here | | (59) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (53) | set_x509_ocsp_multi_invalid.c:198:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 198 | assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || fp) > 0); | 166 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 181 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here |...... | 185 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(54) ...to here | | (55) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(56) ...to here | | (57) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 190 || fp) > 0); | 191 || fclose(fp); | || ~ | || | | |+------->(58) ...to here |...... | 194 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (59) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 60-62 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (60) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (61) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(62) ...to here | <------+ | 'doit': events 63-68 | |set_x509_ocsp_multi_invalid.c:194:21: | 194 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (63) returning to 'doit' from 'get_tmpname' | 195 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (64) opened here | 196 | if (fp == NULL) | | ~ | | | | | (65) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (66) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 197 || fail("error in fopen\n"); | 198 || assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | || ~ | || | | |+------->(67) ...to here | | (68) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (64) | set_x509_ocsp_multi_invalid.c:221:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 221 | assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || fp) > 0); | 166 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 181 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here |...... | 185 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(54) ...to here | | (55) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(56) ...to here | | (57) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 190 || fp) > 0); | 191 || fclose(fp); | || ~ | || | | |+------->(58) ...to here |...... | 194 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (59) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 60-62 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (60) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (61) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(62) ...to here | <------+ | 'doit': events 63-72 | |set_x509_ocsp_multi_invalid.c:194:21: | 194 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (63) returning to 'doit' from 'get_tmpname' | 195 | fp = fopen(ocspfile1, "wb"); | 196 | if (fp == NULL) | | ~ | | | | | (64) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 197 || fail("error in fopen\n"); | 198 || assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | || ~ | || | | |+------->(65) ...to here | | (66) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 199 || fclose(fp); | || ~ | || | | |+------->(67) ...to here |...... | 203 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (68) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 207 || gnutls_certificate_set_flags( | || ~ | || | | |+------->(69) ...to here |...... | 213 | if (ret < 0) | | ~ | | | | | (70) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 217 || ocspfile2 = get_tmpname(ocspname2); | || ~ | || | | |+------------------->(71) ...to here | | (72) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 73-75 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (73) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (74) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(75) ...to here | <------+ | 'doit': events 76-81 | |set_x509_ocsp_multi_invalid.c:217:21: | 217 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (76) returning to 'doit' from 'get_tmpname' | 218 | fp = fopen(ocspfile2, "wb"); | | ~ | | | | | (77) opened here | 219 | if (fp == NULL) | | ~ | | | | | (78) assuming 'fopen (get_tmpname (&ocspname2), "wb")' is non-NULL | | (79) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 220 || fail("error in fopen\n"); | 221 || assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0); | || ~ | || | | |+------->(80) ...to here | | (81) 'fopen (get_tmpname (&ocspname2), "wb")' leaks here; was opened at (77) | set_x509_ocsp_multi_invalid.c:234:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 234 | assert(fwrite(ocsp_resp3.data, 1, ocsp_resp3.size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |set_x509_ocsp_multi_invalid.c:94:6: | 94 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 118 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 119 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 120 || | 121 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 122 | | 123 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |set_x509_ocsp_multi_invalid.c:123:21: | 123 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 127 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 128 || fail("error in fopen\n"); | 129 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 130 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 131 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 132 || fp) > 0); | 133 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 137 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 138 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 139 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 142 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_invalid.c:142:21: | 142 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 156 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 157 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 160 | if (fp == NULL) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("error in fopen\n"); | 162 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(35) ...to here | | (36) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 163 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 164 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 165 || fp) > 0); | 166 || fclose(fp); | || ~ | || | | |+------->(39) ...to here |...... | 169 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (40) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 41-43 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (41) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (42) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(43) ...to here | <------+ | 'doit': events 44-59 | |set_x509_ocsp_multi_invalid.c:169:21: | 169 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (44) returning to 'doit' from 'get_tmpname' |...... | 172 | if (fp == NULL) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 173 || fail("error in fopen\n"); | 174 || assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0); | || ~ | || | | |+------->(46) ...to here | | (47) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 175 || assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0); | || ~ | || | | |+------->(48) ...to here | | (49) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 176 || fclose(fp); | || ~ | || | | |+------->(50) ...to here |...... | 180 | if (ret < 0) | | ~ | | | | | (51) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 181 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 182 || index3 = ret; | || ~ | || | | |+-------------->(52) ...to here |...... | 185 | if (fp == NULL) | | ~ | | | | | (53) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(54) ...to here | | (55) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 189 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(56) ...to here | | (57) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 190 || fp) > 0); | 191 || fclose(fp); | || ~ | || | | |+------->(58) ...to here |...... | 194 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (59) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 60-62 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (60) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (61) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(62) ...to here | <------+ | 'doit': events 63-72 | |set_x509_ocsp_multi_invalid.c:194:21: | 194 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (63) returning to 'doit' from 'get_tmpname' | 195 | fp = fopen(ocspfile1, "wb"); | 196 | if (fp == NULL) | | ~ | | | | | (64) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 197 || fail("error in fopen\n"); | 198 || assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0); | || ~ | || | | |+------->(65) ...to here | | (66) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 199 || fclose(fp); | || ~ | || | | |+------->(67) ...to here |...... | 203 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (68) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 207 || gnutls_certificate_set_flags( | || ~ | || | | |+------->(69) ...to here |...... | 213 | if (ret < 0) | | ~ | | | | | (70) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 217 || ocspfile2 = get_tmpname(ocspname2); | || ~ | || | | |+------------------->(71) ...to here | | (72) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 73-75 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (73) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (74) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(75) ...to here | <------+ | 'doit': events 76-83 | |set_x509_ocsp_multi_invalid.c:217:21: | 217 | ocspfile2 = get_tmpname(ocspname2); | | ^ | | | | | (76) returning to 'doit' from 'get_tmpname' | 218 | fp = fopen(ocspfile2, "wb"); | 219 | if (fp == NULL) | | ~ | | | | | (77) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 220 || fail("error in fopen\n"); | 221 || assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0); | || ~ | || | | |+------->(78) ...to here | | (79) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 222 || fclose(fp); | || ~ | || | | |+------->(80) ...to here |...... | 226 | if (ret < 0) | | ~ | | | | | (81) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 230 || ocspfile3 = get_tmpname(ocspname3); | || ~ | || | | |+------------------->(82) ...to here | | (83) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 84-86 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (84) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (85) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(86) ...to here | <------+ | 'doit': events 87-92 | |set_x509_ocsp_multi_invalid.c:230:21: | 230 | ocspfile3 = get_tmpname(ocspname3); | | ^ | | | | | (87) returning to 'doit' from 'get_tmpname' | 231 | fp = fopen(ocspfile3, "wb"); | | ~ | | | | | (88) opened here | 232 | if (fp == NULL) | | ~ | | | | | (89) assuming 'fopen (get_tmpname (&ocspname3), "wb")' is non-NULL | | (90) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 233 || fail("error in fopen\n"); | 234 || assert(fwrite(ocsp_resp3.data, 1, ocsp_resp3.size, fp) > 0); | || ~ | || | | |+------->(91) ...to here | | (92) 'fopen (get_tmpname (&ocspname3), "wb")' leaks here; was opened at (88) | CCLD tls-pthread CCLD fips-mode-pthread CCLD dtls-pthread CCLD rng-pthread CCLD pkcs11-cert-import-url-exts CCLD pkcs11-get-exts CCLD pkcs11-get-raw-issuer-exts CCLD pkcs11-cert-import-url4-exts CCLD pkcs11/pkcs11-chainverify CCLD pkcs11/pkcs11-get-issuer CCLD pkcs11/pkcs11-is-known CCLD pkcs11/pkcs11-combo CCLD pkcs11/pkcs11-privkey CCLD pkcs11/pkcs11-pubkey-import-rsa CCLD pkcs11/pkcs11-pubkey-import-ecdsa CCLD pkcs11-import-url-privkey CCLD pkcs11-privkey-fork CCLD pkcs11/pkcs11-ec-privkey-test CCLD pkcs11-privkey-always-auth CCLD pkcs11-privkey-export CCLD pkcs11/pkcs11-import-with-pin CCLD pkcs11/pkcs11-privkey-pthread CCLD pkcs11/pkcs11-pin-func CCLD pkcs11/pkcs11-obj-import pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD pkcs11-privkey-fork-reinit pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD pkcs11-mechanisms CCLD pkcs11-privkey-safenet-always-auth CCLD pkcs11/pkcs11-rsa-pss-privkey-test pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD pkcs11/tls-neg-pkcs11-key CCLD pkcs11/pkcs11-privkey-generate CCLD pkcs11/gnutls_x509_crt_list_import_url pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD pkcs11/gnutls_pcert_list_import_x509_file CCLD pkcs11/pkcs11-eddsa-privkey-test CCLD pkcs11-token-raw CCLD pkcs11-obj-raw CCLD pkcs11-import-url-privkey-caps CCLD ocsp pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD openssl CCLD x509self CCLD x509dn CCLD anonself CCLD pskself CCLD pskself2 utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'doit': events 1-6 | |set_x509_ocsp_multi_cli.c:117:6: | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 137 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 138 || | 139 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(12) ...to here | | (13) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 158 || ret = gnutls_certificate_set_x509_key_file2( | || ~ | || | | |+------------->(18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-52 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | 167 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("error in fopen\n"); | 169 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 170 || ocsp_subca3_unknown_pem.size, fp) > 0); | 171 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 172 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 173 || assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | | (32) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 174 || ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 175 || fclose(fp); | || ~ | || | | |+------->(33) ...to here |...... | 179 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 183 || remove(ocspfile1); | || ~ | || | | |+------->(35) ...to here | 184 | fp = fopen(ocspfile1, "wb"); | 185 | if (fp == NULL) | | ~ | | | | | (36) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(37) ...to here | | (38) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 188 || ocsp_subca3_unknown_pem.size, fp) > 0); | 189 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(39) ...to here | | (40) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 190 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 191 || fclose(fp); | || ~ | || | | |+------->(41) ...to here |...... | 195 | if (ret < 0) | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 198 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(43) ...to here | 199 | GNUTLS_X509_FMT_PEM); | 200 | if (ret < 0) { | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 204 || t = gnutls_certificate_get_ocsp_expiration(clicred, 0, 0, 0); | || ~ | || | | |+----------->(45) ...to here | 205 | if (t != 1509625639) | | ~ | | | | | (46) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 208 || t = gnutls_certificate_get_ocsp_expiration(clicred, 0, 1, 0); | || ~ | || | | |+----------->(47) ...to here | 209 | if (t != 1509625639) | | ~ | | | | | (48) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 212 || t = gnutls_certificate_get_ocsp_expiration(clicred, 0, -1, 0); | || ~ | || | | |+----------->(49) ...to here | 213 | if (t != 1509625639) | | ~ | | | | | (50) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 217 || _test_cli_serv(xcred, clicred, PRIO, PRIO, "localhost", | || ~ | || | | |+------->(51) ...to here | | (52) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 53-61 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (53) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(55) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (56) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(57) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (58) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(59) ...to here | | (60) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(61) ...to here | '_test_cli_serv': events 62-65 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (62) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(63) ...to here | | (64) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (65) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_ocsp_multi_cli.c: In function 'doit': set_x509_ocsp_multi_cli.c:147:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 147 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 137 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 138 || | 139 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(9) ...to here | <------+ | 'doit': events 10-15 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 144 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (11) opened here | 145 | if (fp == NULL) | | ~ | | | | | (12) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (11) | set_x509_ocsp_multi_cli.c:149:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 149 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 137 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 138 || | 139 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(9) ...to here | <------+ | 'doit': events 10-17 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 144 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (11) opened here | 145 | if (fp == NULL) | | ~ | | | | | (12) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (11) | set_x509_ocsp_multi_cli.c:169:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 137 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 138 || | 139 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(12) ...to here | | (13) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 158 || ret = gnutls_certificate_set_x509_key_file2( | || ~ | || | | |+------------->(18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-30 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 167 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("error in fopen\n"); | 169 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | set_x509_ocsp_multi_cli.c:169:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 137 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 138 || | 139 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(12) ...to here | | (13) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 158 || ret = gnutls_certificate_set_x509_key_file2( | || ~ | || | | |+------------->(18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-32 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 167 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("error in fopen\n"); | 169 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | (32) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | | | | | | | |+-------------------------------------------+ | 170 || ocsp_subca3_unknown_pem.size, fp) > 0); | 171 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | set_x509_ocsp_multi_cli.c:169:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 169 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 137 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 138 || | 139 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(12) ...to here | | (13) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 158 || ret = gnutls_certificate_set_x509_key_file2( | || ~ | || | | |+------------->(18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (26) opened here | 167 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("error in fopen\n"); | 169 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | (34) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (26) | | | | | | | |+-------------------------------------------+ | 170 || ocsp_subca3_unknown_pem.size, fp) > 0); | 171 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | | (32) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 172 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 173 || assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | || ~ | || | | |+------->(33) ...to here | set_x509_ocsp_multi_cli.c:187:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 187 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 137 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 138 || | 139 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(12) ...to here | | (13) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 158 || ret = gnutls_certificate_set_x509_key_file2( | || ~ | || | | |+------------->(18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-40 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | 167 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("error in fopen\n"); | 169 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 170 || ocsp_subca3_unknown_pem.size, fp) > 0); | 171 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 172 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 173 || assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | | (32) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 174 || ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 175 || fclose(fp); | || ~ | || | | |+------->(33) ...to here |...... | 179 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 183 || remove(ocspfile1); | || ~ | || | | |+------->(35) ...to here | 184 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (36) opened here | 185 | if (fp == NULL) | | ~ | | | | | (37) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (38) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(39) ...to here | | (40) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (36) | set_x509_ocsp_multi_cli.c:187:9: warning: leak of FILE 'fopen (get_tmpname (&ocspname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 187 | assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | ^ 'doit': events 1-6 | | 117 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 136 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 137 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(3) ...to here | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 138 || | 139 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(5) ...to here | 140 | | 141 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (6) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 7-9 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (7) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+---------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(9) ...to here | <------+ | 'doit': events 10-21 | |set_x509_ocsp_multi_cli.c:141:21: | 141 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (10) returning to 'doit' from 'get_tmpname' |...... | 145 | if (fp == NULL) | | ~ | | | | | (11) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 146 || fail("error in fopen\n"); | 147 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(12) ...to here | | (13) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 148 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 149 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 150 || fp) > 0); | 151 || fclose(fp); | || ~ | || | | |+------->(16) ...to here |...... | 155 | if (ret < 0) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 158 || ret = gnutls_certificate_set_x509_key_file2( | || ~ | || | | |+------------->(18) ...to here | 159 | clicred, certfile1, certfile1, GNUTLS_X509_FMT_PEM, NULL, 0); | 160 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 161 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 162 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 165 | ocspfile1 = get_tmpname(ocspname1); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-42 | |set_x509_ocsp_multi_cli.c:165:21: | 165 | ocspfile1 = get_tmpname(ocspname1); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 166 | fp = fopen(ocspfile1, "wb"); | 167 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 168 || fail("error in fopen\n"); | 169 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 170 || ocsp_subca3_unknown_pem.size, fp) > 0); | 171 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 172 || ocsp_ca3_localhost_unknown_pem.size, fp) > 0); | 173 || assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, | || ~ | || | | |+------->(31) ...to here | | (32) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 174 || ocsp_ca3_localhost6_unknown_pem.size, fp) > 0); | 175 || fclose(fp); | || ~ | || | | |+------->(33) ...to here |...... | 179 | if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 183 || remove(ocspfile1); | || ~ | || | | |+------->(35) ...to here | 184 | fp = fopen(ocspfile1, "wb"); | | ~ | | | | | (36) opened here | 185 | if (fp == NULL) | | ~ | | | | | (37) assuming 'fopen (get_tmpname (&ocspname1), "wb")' is non-NULL | | (38) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 186 || fail("error in fopen\n"); | 187 || assert(fwrite(ocsp_subca3_unknown_pem.data, 1, | || ~ | || | | |+------->(39) ...to here | | (40) following 'true' branch... ->-+ | | (42) 'fopen (get_tmpname (&ocspname1), "wb")' leaks here; was opened at (36) | | | | | | | |+-------------------------------------------+ | 188 || ocsp_subca3_unknown_pem.size, fp) > 0); | 189 || assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, | || ~ | || | | |+------->(41) ...to here | CCLD dhepskself CCLD setcredcrash CCLD tls12-resume-x509 pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD tls12-resume-psk CCLD tls12-resume-anon CCLD tls13-resume-x509 pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD tls13-resume-psk pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD tls13-early-data CCLD tls13-early-data-neg CCLD tls13-early-data-neg2 CCLD resume-with-record-size-limit pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD record-sendfile CCLD tls13/post-handshake-with-cert-pkcs11 CCLD pkcs11/tls-neg-pkcs11-no-key CCLD global-init-override CCLD pkcs11/distrust-after CCLD system-override-hash CCLD system-override-sig CCLD system-override-sig-tls CCLD gnutls_ktls CC dtls/dtls-stress.o ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD system-override-curves-allowlist CCLD protocol-set-allowlist CCLD compress-cert-conf CCLD rsaes-pkcs1-v1_5 pkcs11/softhsm.h: In function 'set_softhsm_conf': pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'doit': events 1-4 | |pkcs11/tls-neg-pkcs11-key.c:423:6: | 423 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 431 | if (gnutls_fips140_mode_enabled()) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 437 || bin = softhsm_bin(); | || ~ | || | | |+------------->(3) ...to here |...... | 449 | set_softhsm_conf(CONFIG); | | ~ | | | | | (4) calling 'set_softhsm_conf' from 'doit' | +--> 'set_softhsm_conf': events 5-10 | |pkcs11/softhsm.h:85:13: | 85 | static void set_softhsm_conf(const char *config) | | ^ | | | | | (5) entry to 'set_softhsm_conf' |...... | 95 | fp = fopen(config, "w"); | | ~ | | | | | (6) opened here | 96 | if (fp == NULL) { | | ~ | | | | | (7) assuming 'fopen (config_5(D), "w")' is non-NULL | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 105 || fputs("directories.tokendir = ", fp); | || ~ | || | | |+------->(9) ...to here |...... | 110 | if (strlen(db_dir) < 6) { | | ~ | | | | | (10) 'fopen (config_5(D), "w")' leaks here; was opened at (6) | CC pkcs11-provider/pkcs11-provider-pk.o CC pkcs11-provider/pkcs11-provider-sig.o CC pkcs11-provider/pkcs11-provider-cipher.o CC pkcs11-provider/pkcs11-provider-hmac.o CCLD pkcs11/list-tokens CCLD tls13/supported_versions CCLD pkcs11/list-objects CCLD tls13/tls12-no-tls13-exts CCLD tls13/post-handshake-with-cert CCLD tls13/post-handshake-without-cert CCLD tls13/cookie CCLD tls13/key_share CCLD tls13/prf ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD tls13/prf-early ./pkcs11/softhsm.h: In function 'set_softhsm_conf': ./pkcs11/softhsm.h:110:12: warning: leak of FILE 'fopen (config_5(D), "w")' [CWE-775] [-Wanalyzer-file-leak] 110 | if (strlen(db_dir) < 6) { | ^ 'set_softhsm_conf': events 1-5 95 | fp = fopen(config, "w"); | ^ | | | (1) opened here 96 | if (fp == NULL) { | ~ | | | (2) assuming 'fopen (config_5(D), "w")' is non-NULL | (3) following 'false' branch... ->-+ | | ...... | | |+----------------------------------------------+ 105 || fputs("directories.tokendir = ", fp); || ~ || | |+------->(4) ...to here ...... 110 | if (strlen(db_dir) < 6) { | ~ | | | (5) 'fopen (config_5(D), "w")' leaks here; was opened at (1) CCLD tls13/post-handshake-with-cert-ticket CCLD tls12-rollback-detection CCLD tls11-rollback-detection CCLD tls12-check-rollback-val CCLD tls11-check-rollback-val CCLD tls13/post-handshake-with-psk CCLD tls13/post-handshake-with-cert-auto CCLD tls13/anti_replay utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/supported_versions.c:340:6: | 340 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 346 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 332 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 336 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13/compress-cert CCLD tls13/compress-cert-neg utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/tls12-no-tls13-exts.c:205:6: | 205 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 211 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 197 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 201 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13/compress-cert-neg2 CCLD tls13/compress-cert-cli utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/post-handshake-without-cert.c:234:6: | 234 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 240 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 226 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 230 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD tls13/hello_retry_request CCLD tls13/hello_retry_request_resume CCLD tls13/hello_retry_request_psk CCLD tls13/psk-ext CCLD tls13/key_update CCLD tls13/key_update_multiple CCLD tls13/key_limits CCLD tls13/multi-ocsp CCLD tls13/ocsp-client CCLD tls13/change_cipher_spec CCLD tls13/no-psk-exts CCLD tls13/psk-dumbfw CCLD tls13/psk-ke-modes CCLD tls13/no-auto-send-ticket CCLD safe-renegotiation/srn0 CCLD safe-renegotiation/srn1 utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/hello_retry_request_resume.c:291:6: | 291 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 297 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 283 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 287 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ CCLD safe-renegotiation/srn2 CCLD safe-renegotiation/srn3 CCLD safe-renegotiation/srn4 CCLD safe-renegotiation/srn5 CCLD dtls-stress utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file_legacy.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || gnutls_global_set_time_function(mytime); | || ~ | || | | |+------->(5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 141 || gnutls_certificate_free_credentials(xcred); | || ~ | || | | |+------->(7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 144 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(9) ...to here | | (10) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || | 146 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, | || ~ | || | | |+------------->(11) ...to here | 147 | GNUTLS_X509_FMT_PEM); | 148 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 151 || success("Testing store of certificates\n"); | || ~ | || | | |+------->(13) ...to here | 152 | | 153 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-23 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 78 | if (fp == NULL) | | ~ | | | | | (16) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 79 || fail("error in fopen\n"); | 80 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(17) ...to here | | (18) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 81 || assert(fwrite(key->data, 1, key->size, fp) > 0); | || ~ | || | | |+------->(19) ...to here | | (20) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 82 || fclose(fp); | || ~ | || | | |+------->(21) ...to here |...... | 86 | if (ret < 0) | | ~ | | | | | (22) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 90 || return ret; | || ~ | || | | |+-------------->(23) ...to here | <------+ | 'doit': events 24-25 | | 153 | idx = set_cert(xcred, &server_ca3_key, | | ^ | | | | | (24) returning to 'doit' from 'set_cert' | 154 | &server_ca3_localhost6_cert_chain); | 155 | verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2); | | ~ | | | | | (25) calling 'verify_written_cert' from 'doit' | +--> 'verify_written_cert': events 26-28 | | 93 | static void verify_written_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (26) entry to 'verify_written_cert' |...... | 102 | if (ret < 0) { | | ~ | | | | | (27) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 107 || compare(&tcert, cert->data); | || ~ | || | | |+--------------------------->(28) ...to here | 'verify_written_cert': event 29 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (29) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 30-32 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (30) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (31) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 59 || if (der->size != new_der.size || | || ~ | || | | |+-------------->(32) ...to here | 'compare': events 33-34 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 60 || memcmp(der->data, new_der.data, der->size) != 0) { | || ~ | || | | |+----------->(34) ...to here | 'compare': events 35-36 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (35) following 'false' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 64 || gnutls_free(new_der.data); | || ~ | || | | |+------->(36) ...to here | <------+ | 'verify_written_cert': events 37-41 | | 107 | compare(&tcert, cert->data); | | ^ | | | | | (37) returning to 'verify_written_cert' from 'compare' | 108 | | 109 | if (ncerts > 1) { | | ~ | | | | | (38) following 'true' branch (when 'ncerts_13(D) > 1')... ->-+ | | | | | | | |+------------------------------------------------------------------------+ | 110 || ret = gnutls_certificate_get_crt_raw(xcred, idx, 1, &tcert); | || ~ | || | | |+--------------------->(39) ...to here | 111 | if (ret < 0) { | | ~ | | | | | (40) following 'false' branch... ->-+ | | | |...... | | | | |+-------------------------------------------------------+ | 118 || compare(&tcert, cert->data + 2); | || ~ | || | | |+----------------------------------->(41) ...to here | 'verify_written_cert': event 42 | | 118 | compare(&tcert, cert->data + 2); | | ^ | | | | | (42) calling 'compare' from 'verify_written_cert' | +--> 'compare': events 43-45 | | 48 | static void compare(const gnutls_datum_t *der, const void *ipem) | | ^ | | | | | (43) entry to 'compare' |...... | 55 | if (ret < 0) { | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 59 || if (der->size != new_der.size || | || ~ | || | | |+-------------->(45) ...to here | 'compare': events 46-47 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (46) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 60 || memcmp(der->data, new_der.data, der->size) != 0) { | || ~ | || | | |+----------->(47) ...to here | 'compare': events 48-49 | | 59 | if (der->size != new_der.size || | | ^ | | | | | (48) following 'false' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 64 || gnutls_free(new_der.data); | || ~ | || | | |+------->(49) ...to here | <------+ | 'verify_written_cert': event 50 | | 118 | compare(&tcert, cert->data + 2); | | ^ | | | | | (50) returning to 'verify_written_cert' from 'compare' | <------+ | 'doit': events 51-54 | | 155 | verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2); | | ^ | | | | | (51) returning to 'doit' from 'verify_written_cert' | 156 | assert(idx == 0); | | ~ | | | | | (52) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 157 || | 158 || success("Tested store of %d\n", idx); | || ~ | || | | |+------->(53) ...to here | 159 | | 160 | idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert); | | ~ | | | | | (54) calling 'set_cert' from 'doit' | +--> 'set_cert': events 55-63 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (55) entry to 'set_cert' |...... | 78 | if (fp == NULL) | | ~ | | | | | (56) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 79 || fail("error in fopen\n"); | 80 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(57) ...to here | | (58) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 81 || assert(fwrite(key->data, 1, key->size, fp) > 0); | || ~ | || | | |+------->(59) ...to here | | (60) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 82 || fclose(fp); | || ~ | || | | |+------->(61) ...to here |...... | 86 | if (ret < 0) | | ~ | | | | | (62) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 90 || return ret; | || ~ | || | | |+-------------->(63) ...to here | <------+ | 'doit': events 64-67 | | 160 | idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert); | | ^ | | | | | (64) returning to 'doit' from 'set_cert' | 161 | assert(idx == 0); | | ~ | | | | | (65) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 162 || | 163 || success("Tested store of %d\n", idx); | || ~ | || | | |+------->(66) ...to here | 164 | | 165 | test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, | | ~ | | | | | (67) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 68-69 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (68) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (69) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 70-78 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (70) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (71) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(72) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (73) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(74) ...to here | 79 | if (ret < 0) | | ~ | | | | | (75) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(76) ...to here | | (77) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(78) ...to here | '_test_cli_serv': events 79-82 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (79) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(80) ...to here | | (81) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (82) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ set_x509_key_file_legacy.c: In function 'set_cert': set_x509_key_file_legacy.c:80:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'doit': events 1-12 | | 122 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (2) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || gnutls_global_set_time_function(mytime); | || ~ | || | | |+------->(3) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 141 || gnutls_certificate_free_credentials(xcred); | || ~ | || | | |+------->(5) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 144 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(7) ...to here | | (8) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 145 || | 146 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, | || ~ | || | | |+------------->(9) ...to here | 147 | GNUTLS_X509_FMT_PEM); | 148 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 151 || success("Testing store of certificates\n"); | || ~ | || | | |+------->(11) ...to here | 152 | | 153 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (12) calling 'set_cert' from 'doit' | +--> 'set_cert': events 13-14 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (13) entry to 'set_cert' |...... | 75 | certfile = get_tmpname(NULL); | | ~ | | | | | (14) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 15-17 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (15) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (16) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(17) ...to here | <------+ | 'set_cert': events 18-23 | |set_x509_key_file_legacy.c:75:20: | 75 | certfile = get_tmpname(NULL); | | ^ | | | | | (18) returning to 'set_cert' from 'get_tmpname' | 76 | | 77 | fp = fopen(certfile, "w"); | | ~ | | | | | (19) opened here | 78 | if (fp == NULL) | | ~ | | | | | (20) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (21) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 79 || fail("error in fopen\n"); | 80 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(22) ...to here | | (23) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (19) | set_x509_key_file_legacy.c:80:9: warning: leak of FILE 'fopen (get_tmpname (0B), "w")' [CWE-775] [-Wanalyzer-file-leak] 80 | assert(fwrite(cert->data, 1, cert->size, fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-14 | |set_x509_key_file_legacy.c:122:6: | 122 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || gnutls_global_set_time_function(mytime); | || ~ | || | | |+------->(5) ...to here |...... | 138 | if (ret != GNUTLS_E_FILE_ERROR) | | ~ | | | | | (6) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 141 || gnutls_certificate_free_credentials(xcred); | || ~ | || | | |+------->(7) ...to here | 142 | | 143 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 144 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(9) ...to here | | (10) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || | 146 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, | || ~ | || | | |+------------->(11) ...to here | 147 | GNUTLS_X509_FMT_PEM); | 148 | if (ret < 0) | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 151 || success("Testing store of certificates\n"); | || ~ | || | | |+------->(13) ...to here | 152 | | 153 | idx = set_cert(xcred, &server_ca3_key, | | ~ | | | | | (14) calling 'set_cert' from 'doit' | +--> 'set_cert': events 15-16 | | 68 | static unsigned set_cert(gnutls_certificate_credentials_t xcred, | | ^ | | | | | (15) entry to 'set_cert' |...... | 75 | certfile = get_tmpname(NULL); | | ~ | | | | | (16) calling 'get_tmpname' from 'set_cert' | +--> 'get_tmpname': events 17-19 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (17) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (18) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(19) ...to here | <------+ | 'set_cert': events 20-27 | |set_x509_key_file_legacy.c:75:20: | 75 | certfile = get_tmpname(NULL); | | ^ | | | | | (20) returning to 'set_cert' from 'get_tmpname' | 76 | | 77 | fp = fopen(certfile, "w"); | | ~ | | | | | (21) opened here | 78 | if (fp == NULL) | | ~ | | | | | (22) assuming 'fopen (get_tmpname (0B), "w")' is non-NULL | | (23) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 79 || fail("error in fopen\n"); | 80 || assert(fwrite(cert->data, 1, cert->size, fp) > 0); | || ~ | || | | |+------->(24) ...to here | | (25) following 'true' branch... ->-+ | | (27) 'fopen (get_tmpname (0B), "w")' leaks here; was opened at (21) | | | | | | | |+-------------------------------------------+ | 81 || assert(fwrite(key->data, 1, key->size, fp) > 0); | || ~ | || | | |+------->(26) ...to here | CCLD pkcs11-provider/pkcs11-provider-pk CCLD pkcs11-provider/pkcs11-provider-sig CCLD pkcs11-provider/pkcs11-provider-cipher CCLD pkcs11-provider/pkcs11-provider-hmac utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'start': events 1-2 | |tls13/change_cipher_spec.c:326:13: | 326 | static void start(unsigned ccs_check) | | ^ | | | | | (1) entry to 'start' |...... | 332 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 318 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 322 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'doit': events 1-2 | |tls13/no-psk-exts.c:227:6: | 227 | void doit(void) | | ^ | | | | | (1) entry to 'doit' |...... | 233 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 219 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 223 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ utils.c: In function '_fail': utils.c:110:9: warning: call to 'exit' from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] 110 | exit(1); | ^ 'run_test': events 1-2 | |tls13/psk-dumbfw.c:289:13: | 289 | static void run_test(const char *prio) | | ^ | | | | | (1) entry to 'run_test' |...... | 295 | signal(SIGCHLD, ch_handler); | | ~ | | | | | (2) registering 'ch_handler' as signal handler | event 3 | |lto1: | (3): later on, when the signal is delivered to the process | +--> 'ch_handler': events 4-5 | | 281 | static void ch_handler(int sig) | | ^ | | | | | (4) entry to 'ch_handler' |...... | 285 | check_wait_status(status); | | ~ | | | | | (5) inlined call to 'check_wait_status' from 'ch_handler' | +--> 'check_wait_status': event 6 | |./utils.h:167:9: | 167 | _check_wait_status(status, 0); | | ^ | | | | | (6) calling '_check_wait_status' from 'ch_handler' | '_check_wait_status': events 7-10 | | 146 | inline static void _check_wait_status(int status, unsigned sigonly) | | ^ | | | | | (7) entry to '_check_wait_status' |...... | 151 | if (WIFSIGNALED(status)) { | | ~ | | | | | (8) following 'true' branch... ->-+ | | | | | | | |+-----------------------------------------------------+ | 152 || fail("Child died with signal %d\n", WTERMSIG(status)); | || ~ | || | | |+----------------------->(9) ...to here | | (10) calling '_fail' from '_check_wait_status' | +--> '_fail': events 11-12 | |utils.c:89:6: | 89 | void _fail(const char *format, ...) | | ^ | | | | | (11) entry to '_fail' |...... | 110 | exit(1); | | ~ | | | | | (12) call to 'exit' from within signal handler | utils.c:110:9: note: '_exit' is a possible signal-safe alternative for 'exit' 110 | exit(1); | ^ utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 140 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 141 || | 142 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 148 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 151 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 152 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 153 || fp) > 0); | 154 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 158 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 159 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 160 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 163 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-44 | |tls13/multi-ocsp.c:163:21: | 163 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 166 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 167 || fail("error in fopen\n"); | 168 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 169 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 170 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 171 || fp) > 0); | 172 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 176 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 177 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 178 || index2 = ret; | || ~ | || | | |+-------------->(33) ...to here |...... | 183 | if (ret < 0) | | ~ | | | | | (34) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 187 || ret = gnutls_certificate_set_ocsp_status_request_mem( | || ~ | || | | |+------------->(35) ...to here | 188 | xcred, &test_localhost6.ocsp[0], index2, GNUTLS_X509_FMT_DER); | 189 | if (ret < 0) | | ~ | | | | | (36) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 193 || xcred, &test_localhost6.ocsp[1], index2, GNUTLS_X509_FMT_DER); | || ~ | || | | |+-------------------------------------->(37) ...to here | 194 | if (ret < 0) | | ~ | | | | | (38) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 199 || gnutls_certificate_set_verify_flags(clicred, | || ~ | || | | |+------->(39) ...to here | 200 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 201 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (40) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 205 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(41) ...to here | 206 | GNUTLS_X509_FMT_PEM); | 207 | if (ret < 0) { | | ~ | | | | | (42) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 211 || test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", | || ~ | || | | |+------->(43) ...to here | | (44) calling 'test_cli_serv' from 'doit' | +--> 'test_cli_serv': events 45-46 | |utils-adv.c:189:6: | 189 | void test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (45) entry to 'test_cli_serv' |...... | 194 | _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, | | ~ | | | | | (46) calling '_test_cli_serv' from 'test_cli_serv' | +--> '_test_cli_serv': events 47-55 | | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (47) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (48) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(49) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (50) following 'false' branch (when 'require_cert_96(D) == 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------+ | 78 || ret = gnutls_init(&client, GNUTLS_CLIENT); | || ~ | || | | |+------------->(51) ...to here | 79 | if (ret < 0) | | ~ | | | | | (52) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(53) ...to here | | (54) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(55) ...to here | '_test_cli_serv': events 56-59 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (56) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(57) ...to here | | (58) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (59) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ tls13/multi-ocsp.c: In function 'doit': tls13/multi-ocsp.c:150:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 150 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 140 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 141 || | 142 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-17 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 146 | | 147 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 148 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | tls13/multi-ocsp.c:152:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 152 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 140 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 141 || | 142 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-19 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' | 146 | | 147 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 148 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 151 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 152 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | tls13/multi-ocsp.c:168:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 168 | assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 140 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 141 || | 142 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 148 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 151 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 152 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 153 || fp) > 0); | 154 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 158 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 159 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 160 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 163 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-30 | |tls13/multi-ocsp.c:163:21: | 163 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 164 | | 165 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 166 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 167 || fail("error in fopen\n"); | 168 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | tls13/multi-ocsp.c:170:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 170 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/multi-ocsp.c:120:6: | 120 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 139 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 140 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 141 || | 142 || gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here |...... | 145 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |tls13/multi-ocsp.c:145:21: | 145 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 148 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 149 || fail("error in fopen\n"); | 150 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 151 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 152 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 153 || fp) > 0); | 154 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 158 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 159 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 160 || index1 = ret; | || ~ | || | | |+-------------->(20) ...to here |...... | 163 | certfile2 = get_tmpname(certname2); | | ~ | | | | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-32 | |tls13/multi-ocsp.c:163:21: | 163 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 164 | | 165 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 166 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 167 || fail("error in fopen\n"); | 168 || assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 169 || strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0); | 170 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | utils-adv.c: In function '_test_cli_serv': utils-adv.c:84:25: warning: buffer over-read [CWE-126] [-Wanalyzer-out-of-bounds] 84 | assert(_gnutls_server_name_set_raw( | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 133 || | 134 || gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 141 || fail("error in fopen\n"); | 142 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 143 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || fp) > 0); | 146 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 154 || certfile2 = get_tmpname(certname2); | || ~ | || | | |+------------------->(20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 161 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 164 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 165 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 166 || index1 = ret; | || ~ | || | | |+-------------->(33) ...to here | 167 | | 168 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(37) ...to here | <------+ | 'doit': events 38-57 | |tls13/ocsp-client.c:168:21: | 168 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 169 | fp = fopen(certfile3, "wb"); | 170 | if (fp == NULL) | | ~ | | | | | (39) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 171 || fail("error in fopen\n"); | 172 || assert(fwrite(cli_cert_pem, 1, strlen((char *)cli_cert_pem), fp) > 0); | || ~ | || | | |+------->(40) ...to here | | (41) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 173 || assert(fwrite(cli_key_pem, 1, strlen((char *)cli_key_pem), fp) > 0); | || ~ | || | | |+------->(42) ...to here | | (43) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 174 || fclose(fp); | || ~ | || | | |+------->(44) ...to here |...... | 178 | if (ret < 0) | | ~ | | | | | (45) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 179 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 180 || index2 = ret; | || ~ | || | | |+-------------->(46) ...to here |...... | 187 | if (ret < 0) | | ~ | | | | | (47) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 191 || ret = gnutls_certificate_set_ocsp_status_request_mem( | || ~ | || | | |+------------->(48) ...to here | 192 | clicred, &ocsp_resp1, index1, GNUTLS_X509_FMT_DER); | 193 | if (ret < 0) | | ~ | | | | | (49) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 198 || gnutls_certificate_set_verify_flags(clicred, | || ~ | || | | |+------->(50) ...to here | 199 | GNUTLS_VERIFY_DISABLE_CRL_CHECKS); | 200 | if (gnutls_certificate_get_verify_flags(clicred) != | | ~ | | | | | (51) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 204 || ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, | || ~ | || | | |+------------->(52) ...to here | 205 | GNUTLS_X509_FMT_PEM); | 206 | if (ret < 0) { | | ~ | | | | | (53) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 210 || ret = gnutls_certificate_set_x509_trust_mem(xcred, &subca3_cert, | || ~ | || | | |+------------->(54) ...to here | 211 | GNUTLS_X509_FMT_PEM); | 212 | if (ret < 0) { | | ~ | | | | | (55) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 216 || _test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", | || ~ | || | | |+------->(56) ...to here | | (57) calling '_test_cli_serv' from 'doit' | +--> '_test_cli_serv': events 58-66 | |utils-adv.c:44:5: | 44 | int _test_cli_serv(gnutls_certificate_credentials_t server_cred, | | ^ | | | | | (58) entry to '_test_cli_serv' |...... | 67 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 70 || gnutls_transport_set_push_function(server, server_push); | || ~ | || | | |+------->(60) ...to here |...... | 74 | if (require_cert) | | ~ | | | | | (61) following 'true' branch (when 'require_cert_96(D) != 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 75 || gnutls_certificate_server_set_request(server, | || ~ | || | | |+--------------->(62) ...to here |...... | 79 | if (ret < 0) | | ~ | | | | | (63) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 82 || if (host) { | || ~ | || | | |+---------->(64) ...to here | | (65) following 'true' branch (when 'host_100(D)' is non-NULL)... ->-+ | | | | | | | |+-------------------------------------------------------------------------------+ | 83 || if (strncmp(host, "raw:", 4) == 0) { | || ~ | || | | |+------------------->(66) ...to here | '_test_cli_serv': events 67-70 | | 83 | if (strncmp(host, "raw:", 4) == 0) { | | ^ | | | | | (67) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 84 || assert(_gnutls_server_name_set_raw( | || ~ | || | | |+----------------------->(68) ...to here | | (69) while looking for null terminator for argument 1 ('_8') of 'strlen'... | | (70) out-of-bounds read from byte 10 till byte 13 but '"localhost"' ends at byte 10 | utils-adv.c:84:25: note: read of 4 bytes from after the end of '"localhost"' 84 | assert(_gnutls_server_name_set_raw( | ^ utils-adv.c:84:25: note: valid subscripts for '"localhost"' are '[0]' to '[9]' +------------------------------------------------+ | read of 10 bytes | +------------------------------------------------+ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-----+----------------------------------------+----++-----------------+ | [0] | ... |[9] || | +-----+----+----+----++----+----+----+----+----+----+| | | 'l' |'o' |'c' |'a' ||'l' |'h' |'o' |'s' |'t' |NUL ||after valid range| +-----+----+----+----++----+----+----+----+----+----+| | | string literal (type: 'const char[10]') || | +---------------------------------------------------++-----------------+ |~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~||~~~~~~~~+~~~~~~~~| | | +-------+------+ +----------+---------+ |size: 10 bytes| |over-read of 4 bytes| +--------------+ +--------------------+ /usr/include/string.h:407:15: note: argument 1 of 'strlen' must be a pointer to a null-terminated string 407 | extern size_t strlen (const char *__s) | ^ tls13/ocsp-client.c: In function 'doit': tls13/ocsp-client.c:142:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 142 | assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 133 || | 134 || gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-17 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 140 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 141 || fail("error in fopen\n"); | 142 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | tls13/ocsp-client.c:144:9: warning: leak of FILE 'fopen (get_tmpname (&certname1), "wb")' [CWE-775] [-Wanalyzer-file-leak] 144 | assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 133 || | 134 || gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-19 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 139 | fp = fopen(certfile1, "wb"); | | ~ | | | | | (13) opened here | 140 | if (fp == NULL) | | ~ | | | | | (14) assuming 'fopen (get_tmpname (&certname1), "wb")' is non-NULL | | (15) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 141 || fail("error in fopen\n"); | 142 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 143 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(18) ...to here | | (19) 'fopen (get_tmpname (&certname1), "wb")' leaks here; was opened at (13) | tls13/ocsp-client.c:159:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 159 | assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 133 || | 134 || gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 141 || fail("error in fopen\n"); | 142 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 143 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || fp) > 0); | 146 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 154 || certfile2 = get_tmpname(certname2); | || ~ | || | | |+------------------->(20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-30 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 155 | | 156 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 157 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | || ~ | || | | |+------->(29) ...to here | | (30) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | tls13/ocsp-client.c:160:9: warning: leak of FILE 'fopen (get_tmpname (&certname2), "wb")' [CWE-775] [-Wanalyzer-file-leak] 160 | assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 133 || | 134 || gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 141 || fail("error in fopen\n"); | 142 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 143 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || fp) > 0); | 146 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 154 || certfile2 = get_tmpname(certname2); | || ~ | || | | |+------------------->(20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-32 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' | 155 | | 156 | fp = fopen(certfile2, "wb"); | | ~ | | | | | (26) opened here | 157 | if (fp == NULL) | | ~ | | | | | (27) assuming 'fopen (get_tmpname (&certname2), "wb")' is non-NULL | | (28) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | || ~ | || | | |+------->(31) ...to here | | (32) 'fopen (get_tmpname (&certname2), "wb")' leaks here; was opened at (26) | tls13/ocsp-client.c:172:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 172 | assert(fwrite(cli_cert_pem, 1, strlen((char *)cli_cert_pem), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 133 || | 134 || gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 141 || fail("error in fopen\n"); | 142 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 143 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || fp) > 0); | 146 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 154 || certfile2 = get_tmpname(certname2); | || ~ | || | | |+------------------->(20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 161 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 164 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 165 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 166 || index1 = ret; | || ~ | || | | |+-------------->(33) ...to here | 167 | | 168 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(37) ...to here | <------+ | 'doit': events 38-43 | |tls13/ocsp-client.c:168:21: | 168 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 169 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (39) opened here | 170 | if (fp == NULL) | | ~ | | | | | (40) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (41) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 171 || fail("error in fopen\n"); | 172 || assert(fwrite(cli_cert_pem, 1, strlen((char *)cli_cert_pem), fp) > 0); | || ~ | || | | |+------->(42) ...to here | | (43) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (39) | tls13/ocsp-client.c:173:9: warning: leak of FILE 'fopen (get_tmpname (&certname3), "wb")' [CWE-775] [-Wanalyzer-file-leak] 173 | assert(fwrite(cli_key_pem, 1, strlen((char *)cli_key_pem), fp) > 0); | ^ 'main': events 1-2 | |utils.c:228:5: | 228 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 246 | doit(); | | ~ | | | | | (2) calling 'doit' from 'main' | +--> 'doit': events 3-8 | |tls13/ocsp-client.c:110:6: | 110 | void doit(void) | | ^ | | | | | (3) entry to 'doit' |...... | 131 | assert(gnutls_certificate_allocate_credentials(&xcred) >= 0); | | ~ | | | | | (4) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 132 || assert(gnutls_certificate_allocate_credentials(&clicred) >= 0); | || ~ | || | | |+------->(5) ...to here | | (6) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------+ | 133 || | 134 || gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_API_V2); | || ~ | || | | |+------->(7) ...to here | 135 | | 136 | certfile1 = get_tmpname(certname1); | | ~ | | | | | (8) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 9-11 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (9) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (10) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(11) ...to here | <------+ | 'doit': events 12-21 | |tls13/ocsp-client.c:136:21: | 136 | certfile1 = get_tmpname(certname1); | | ^ | | | | | (12) returning to 'doit' from 'get_tmpname' |...... | 140 | if (fp == NULL) | | ~ | | | | | (13) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 141 || fail("error in fopen\n"); | 142 || assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, | || ~ | || | | |+------->(14) ...to here | | (15) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 143 || strlen(server_localhost_ca3_cert_chain_pem), fp) > 0); | 144 || assert(fwrite(server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem), | || ~ | || | | |+------->(16) ...to here | | (17) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 145 || fp) > 0); | 146 || fclose(fp); | || ~ | || | | |+------->(18) ...to here |...... | 150 | if (ret < 0) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 154 || certfile2 = get_tmpname(certname2); | || ~ | || | | |+------------------->(20) ...to here | | (21) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 22-24 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (22) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (23) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(24) ...to here | <------+ | 'doit': events 25-34 | |tls13/ocsp-client.c:154:21: | 154 | certfile2 = get_tmpname(certname2); | | ^ | | | | | (25) returning to 'doit' from 'get_tmpname' |...... | 157 | if (fp == NULL) | | ~ | | | | | (26) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 158 || fail("error in fopen\n"); | 159 || assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0); | || ~ | || | | |+------->(27) ...to here | | (28) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 160 || assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0); | || ~ | || | | |+------->(29) ...to here | | (30) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 161 || fclose(fp); | || ~ | || | | |+------->(31) ...to here |...... | 164 | if (ret < 0) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 165 || fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret)); | 166 || index1 = ret; | || ~ | || | | |+-------------->(33) ...to here | 167 | | 168 | certfile3 = get_tmpname(certname3); | | ~ | | | | | (34) calling 'get_tmpname' from 'doit' | +--> 'get_tmpname': events 35-37 | |utils.c:277:7: | 277 | char *get_tmpname(char s[TMPNAME_SIZE]) | | ^ | | | | | (35) entry to 'get_tmpname' |...... | 286 | if (ret < 0) | | ~ | | | | | (36) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 287 || return NULL; | || ~ | || | | |+---------------------->(37) ...to here | <------+ | 'doit': events 38-45 | |tls13/ocsp-client.c:168:21: | 168 | certfile3 = get_tmpname(certname3); | | ^ | | | | | (38) returning to 'doit' from 'get_tmpname' | 169 | fp = fopen(certfile3, "wb"); | | ~ | | | | | (39) opened here | 170 | if (fp == NULL) | | ~ | | | | | (40) assuming 'fopen (get_tmpname (&certname3), "wb")' is non-NULL | | (41) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 171 || fail("error in fopen\n"); | 172 || assert(fwrite(cli_cert_pem, 1, strlen((char *)cli_cert_pem), fp) > 0); | || ~ | || | | |+------->(42) ...to here | | (43) following 'true' branch... ->-+ | | | | | | | |+-------------------------------------------+ | 173 || assert(fwrite(cli_key_pem, 1, strlen((char *)cli_key_pem), fp) > 0); | || ~ | || | | |+------->(44) ...to here | | (45) 'fopen (get_tmpname (&certname3), "wb")' leaks here; was opened at (39) | make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/tests' make check-TESTS make[3]: Entering directory '/startdir/src/gnutls-3.8.10/tests' make[4]: Entering directory '/startdir/src/gnutls-3.8.10/tests' PASS: tls13/supported_versions PASS: tls13/cookie PASS: tls13/anti_replay PASS: tls13/prf PASS: tls13/post-handshake-without-cert PASS: tls13/tls12-no-tls13-exts PASS: tls12-rollback-detection PASS: tls13/prf-early PASS: tls12-check-rollback-val PASS: tls11-rollback-detection PASS: tls11-check-rollback-val PASS: tls13/hello_retry_request_psk PASS: tls13/hello_retry_request PASS: tls13/psk-ext PASS: tls13/hello_retry_request_resume PASS: tls13/compress-cert-neg2 PASS: tls13/no-psk-exts PASS: simple PASS: tls13/compress-cert-neg PASS: tls13/psk-dumbfw PASS: gnutls_hmac_fast PASS: tls13/psk-ke-modes PASS: tls13/compress-cert PASS: cert PASS: certuniqueid PASS: mpi PASS: tls13/change_cipher_spec PASS: tls13/post-handshake-with-psk PASS: certificate_set_x509_crl PASS: dn PASS: tls13/compress-cert-cli PASS: tls13/post-handshake-with-cert PASS: parse_ca PASS: tls13/multi-ocsp PASS: tls13/ocsp-client PASS: x509-dn PASS: tls13/no-auto-send-ticket PASS: x509-dn-decode PASS: hostname-check PASS: cve-2008-4989 PASS: tls13/post-handshake-with-cert-auto PASS: set_pkcs12_cred PASS: pkcs12_s2k PASS: missingissuer_aia PASS: cve-2009-1415 PASS: record-sizes-range SKIP: ssl30-server-kx-neg PASS: tls-neg-ext-key PASS: cve-2009-1416 SKIP: ssl30-cipher-neg PASS: x509sign-verify PASS: tls13/post-handshake-with-cert-ticket PASS: init_roundtrip PASS: crq_apis PASS: dn2 PASS: pkcs12_s2k_pem PASS: nul-in-x509-names PASS: x509_altname PASS: sign-verify PASS: rng-fork PASS: tls13-early-start PASS: gnutls_session_set_id PASS: mini-x509 PASS: record-sizes PASS: chainverify PASS: gnutls_ext_raw_parse PASS: x509cert-tl PASS: missingissuer PASS: x509cert PASS: empty_retrieve_function PASS: tls12-rehandshake-cert-3 PASS: x509cert-ct PASS: infoaccess PASS: tls13-rehandshake-cert PASS: sign-verify-ed25519-rfc8080 PASS: trustdb-tofu SKIP: mini-dtls-large PASS: mini-alpn PASS: handshake-large-cert PASS: mini-termination PASS: pkcs12_simple PASS: chainverify-unsorted PASS: mini-x509-2 SKIP: mini-dtls-heartbeat PASS: key-openssl PASS: mini-x509-callbacks PASS: priorities PASS: mini-x509-cas PASS: priorities-groups PASS: gnutls_x509_crt_list_import PASS: time PASS: tls13/key_share PASS: gnutls_x509_privkey_import PASS: tls11-cipher-neg PASS: tls10-cipher-neg PASS: rsa-encrypt-decrypt PASS: sign-verify-ext4 PASS: gnutls-strcodes PASS: resume-lifetime PASS: x509-server-verify PASS: tls11-server-kx-neg PASS: tls-neg-ext4-key PASS: tls10-server-kx-neg PASS: mini-record-range PASS: rsa-psk PASS: global-init PASS: tls12-cipher-neg PASS: sec-params SKIP: fips-override-test SKIP: fips-test PASS: tls13-cipher-neg PASS: sign-verify-data PASS: name-constraints PASS: x509-extensions PASS: mini-global-load PASS: mini-x509-callbacks-intr PASS: crlverify PASS: cert-status PASS: set_x509_key_file-late PASS: tls12-server-kx-neg PASS: tls12-rehandshake-cert-2 PASS: mini-dtls-hello-verify PASS: custom-urls PASS: mini-record-failure PASS: set_x509_key_mem PASS: tls12-rehandshake-cert-auto PASS: set_x509_key_file PASS: mini-chain-unsorted PASS: x509-verify-duplicate PASS: x509-verify-with-crl PASS: privkey-verify-broken PASS: tls12-rehandshake-set-prio PASS: key-import-export PASS: priority-set PASS: priority-set2 PASS: pubkey-import-export PASS: sign-is-secure PASS: mini-dtls-record PASS: spki-abstract PASS: spki PASS: mini-dtls-lowmtu PASS: pkcs12_encode PASS: mini-key-material PASS: x509cert-invalid PASS: tls-ext-register PASS: tls-supplemental PASS: rsa-rsa-oaep PASS: tls13/key_limits PASS: duplicate-extensions PASS: rsa-rsa-pss PASS: tls-etm PASS: mini-dtls-srtp PASS: tls-force-etm PASS: mini-server-name PASS: alerts PASS: client-sign-md5-rep PASS: tls12-invalid-key-exchanges PASS: x509-cert-callback PASS: session-rdn-read PASS: gnutls_ocsp_resp_list_import2 PASS: server-sign-md5-rep PASS: x509-cert-callback-ocsp PASS: mini-eagain-dtls PASS: tls13/key_update_multiple PASS: pkcs7-gen PASS: mini-dtls-mtu PASS: mini-dtls-discard PASS: crq_key_id PASS: mini-overhead PASS: cipher-alignment PASS: oids PASS: atfork PASS: prf PASS: mini-dtls0-9 PASS: openconnect-dtls12 PASS: priority-init2 PASS: post-client-hello-change-prio PASS: mini-tls-nonblock PASS: privkey-keygen PASS: status-request-ok PASS: status-request PASS: rfc7633-missing PASS: pkcs8-key-decode PASS: urls PASS: sign-verify-ext PASS: key-usage-rsa PASS: fallback-scsv PASS: mini-dtls-record-asym PASS: key-usage-ecdhe-rsa PASS: mini-session-verify-function PASS: rfc7633-ok PASS: auto-verify PASS: set-default-prio PASS: tlsext-decoding PASS: tls12-anon-upgrade PASS: rsa-psk-cb PASS: gnutls-ids PASS: rehandshake-switch-cert PASS: rehandshake-switch-cert-allow PASS: rehandshake-switch-cert-client PASS: rehandshake-switch-cert-client-allow PASS: record-timeouts PASS: handshake-versions PASS: dtls-handshake-versions PASS: x509sign-verify-gost PASS: alpn-server-prec PASS: tls12-max-record PASS: dtls-max-record PASS: ocsp-filename-memleak PASS: dh-params PASS: pcert-list PASS: rehandshake-ext-secret PASS: session-export-funcs PASS: version-checks PASS: name-constraints-merge PASS: crl-basic PASS: crq-basic PASS: x509sign-verify-ecdsa PASS: custom-urls-override PASS: hex PASS: dtls-etm SKIP: rehandshake-switch-srp-id PASS: handshake-timeout PASS: base64 SKIP: srpbase64 PASS: rehandshake-switch-psk-id PASS: pkcs1-digest-info PASS: send-client-cert PASS: set_x509_key_file_der PASS: set_x509_key PASS: crt_apis PASS: set_x509_pkcs12_key SKIP: ssl30-cert-key-exchange PASS: tls13-cert-key-exchange PASS: key-material-dtls PASS: key-material-set-dtls PASS: psk-file PASS: ssl2-hello PASS: tlsfeature-ext PASS: keylog-env PASS: x509-cert-callback-legacy PASS: tlsfeature-crt PASS: tls10-cert-key-exchange PASS: resume-with-false-start PASS: set_x509_key_file_ocsp PASS: tls11-cert-key-exchange PASS: dtls12-cert-key-exchange SKIP: srp PASS: safe-renegotiation/srn0 PASS: safe-renegotiation/srn1 PASS: dtls10-cert-key-exchange PASS: safe-renegotiation/srn2 PASS: safe-renegotiation/srn3 PASS: safe-renegotiation/srn4 PASS: safe-renegotiation/srn5 PASS: rsa-illegal-import PASS: set_x509_ocsp_multi_invalid PASS: set_key PASS: set_x509_key_file_ocsp_multi2 PASS: set_x509_ocsp_multi_unknown PASS: set_x509_ocsp_multi_pem PASS: set_key_utf8 PASS: set_x509_key_utf8 PASS: x509sign-verify-rsa PASS: insecure_key PASS: client_dsa_key PASS: tls12-cert-key-exchange PASS: server_ecdsa_key PASS: handshake-large-packet PASS: multi-alerts PASS: tls-session-supplemental PASS: naked-alerts PASS: tls-session-ext-register PASS: pkcs7-cat-parse PASS: handshake-false-start PASS: session-tickets-ok PASS: session-tickets-missing PASS: set_x509_key_file_legacy PASS: status-request-ext PASS: gnutls_x509_crt_sign PASS: gnutls_x509_crq_sign PASS: resume-dtls PASS: rng-no-onload PASS: dtls1-2-mtu-check PASS: crl_apis PASS: cert_verify_inv_utf8 PASS: no-extensions PASS: no-status-request PASS: hostname-check-utf8 PASS: pkcs8-key-decode-encrypted PASS: priority-mix PASS: tls-ext-not-in-dtls PASS: pkcs7 PASS: send-data-before-handshake PASS: crt_inv_write PASS: recv-data-before-handshake PASS: x509sign-verify-error PASS: dtls-repro-20170915 PASS: set_known_dh_params_anon PASS: set_known_dh_params_psk PASS: x509-dn-decode-compat PASS: ip-check PASS: set_known_dh_params_x509 PASS: base64-raw PASS: random-art PASS: mini-x509-ipaddr PASS: dss-sig-val PASS: trust-store PASS: sign-pk-api PASS: tls-session-ext-override PASS: dhex509self PASS: record-pad PASS: key-export-pkcs8 PASS: null_retrieve_function PASS: tls13-server-kx-neg PASS: tls-record-size-limit PASS: resume-with-stek-expiration PASS: resume-with-previous-stek PASS: rawpk-api PASS: tls-record-size-limit-asym PASS: dh-compute PASS: ecdh-compute PASS: sign-verify-data-newapi PASS: sign-verify-newapi PASS: tls-crt_type-neg PASS: sign-verify-deterministic PASS: iov PASS: aead-cipher-vec PASS: buffer PASS: tls13-without-timeout-func PASS: status-request-revoked PASS: set_x509_ocsp_multi_cli PASS: kdf-api PASS: gnutls_ext_raw_parse_dtls PASS: keylog-func PASS: x509cert-dntypes PASS: tls12-ffdhe PASS: handshake-write PASS: id-on-xmppAddr PASS: x509-upnconstraint SKIP: xts-key-check PASS: ciphersuite-name PASS: cipher-padding PASS: pkcs7-verify-double-free PASS: tls13-compat-mode SKIP: fips-rsa-sizes PASS: pathbuf PASS: privkey-derive PASS: tls12-rehandshake-ticket PASS: ecdh-compute2 PASS: psk-importer PASS: tls-force-ems PASS: strict-der PASS: dh-compute2 PASS: system-prio-file SKIP: fips-mode-pthread PASS: rng-pthread PASS: pkcs11-cert-import-url-exts PASS: pkcs11-get-exts PASS: pkcs11-get-raw-issuer-exts PASS: pkcs11-cert-import-url4-exts SKIP: pkcs11/pkcs11-chainverify SKIP: pkcs11/pkcs11-get-issuer SKIP: pkcs11/pkcs11-is-known SKIP: pkcs11/pkcs11-combo SKIP: pkcs11/pkcs11-privkey SKIP: pkcs11/pkcs11-pubkey-import-rsa PASS: tls-channel-binding PASS: mini-dtls-fork SKIP: pkcs11/pkcs11-pubkey-import-ecdsa PASS: pkcs11-import-url-privkey PASS: pkcs11-privkey-fork SKIP: pkcs11/pkcs11-ec-privkey-test PASS: pkcs11-privkey-always-auth PASS: pkcs11-privkey-export SKIP: pkcs11/pkcs11-import-with-pin PASS: pkcs11/pkcs11-privkey-pthread PASS: pkcs11/pkcs11-pin-func PASS: pkcs11-privkey-fork-reinit SKIP: pkcs11/pkcs11-obj-import PASS: pkcs11-mechanisms PASS: pkcs11-privkey-safenet-always-auth SKIP: pkcs11/tls-neg-pkcs11-key SKIP: pkcs11/pkcs11-rsa-pss-privkey-test SKIP: pkcs11/pkcs11-privkey-generate SKIP: pkcs11/gnutls_x509_crt_list_import_url SKIP: pkcs11/gnutls_pcert_list_import_x509_file PASS: pkcs11-token-raw SKIP: pkcs11/pkcs11-eddsa-privkey-test PASS: pkcs11-obj-raw PASS: pkcs11-import-url-privkey-caps PASS: ocsp PASS: openssl PASS: x509dn PASS: x509self PASS: anonself PASS: dhepskself PASS: setcredcrash PASS: pskself PASS: pskself2 PASS: tls12-resume-psk PASS: dtls-rehandshake-cert-3 PASS: tls13-resume-psk PASS: tls12-resume-anon PASS: tls13-early-data PASS: tls13-early-data-neg PASS: tls13-resume-x509 PASS: resume-with-record-size-limit SKIP: tls13/post-handshake-with-cert-pkcs11 PASS: record-sendfile SKIP: pkcs11/tls-neg-pkcs11-no-key FAIL: global-init-override PASS: tls12-resume-x509 SKIP: pkcs11/distrust-after PASS: rfc2253-escape-test.sh PASS: systemkey.sh SKIP: ktls.sh PASS: rsa-md5-collision/rsa-md5-collision.sh PASS: tls13-early-data-neg2 SKIP: tpm2.sh PASS: dtls-session-ticket-lost SKIP: starttls.sh SKIP: starttls-ftp.sh PASS: pkgconfig.sh SKIP: starttls-smtp.sh SKIP: starttls-lmtp.sh SKIP: starttls-pop3.sh SKIP: starttls-xmpp.sh SKIP: starttls-nntp.sh SKIP: starttls-sieve.sh SKIP: ocsp-tests/ocsp-must-staple-connection.sh PASS: long-session-id PASS: ocsp-tests/ocsp-test.sh PASS: cipher-listings.sh PASS: client-fastopen PASS: psktool.sh PASS: ocsp-tests/ocsp-load-chain.sh PASS: mini-emsgsize-dtls PASS: fastopen.sh PASS: sni-hostname.sh PASS: ocsp-tests/ocsptool.sh PASS: record-retvals PASS: server-multi-keys.sh PASS: pkcs7-cat.sh PASS: long-crl.sh PASS: gnutls-cli-save-data.sh PASS: sni-resume.sh PASS: cert-reencoding.sh PASS: mini-record PASS: ocsp-tests/ocsp-signer-verify.sh PASS: cfg-test.sh PASS: sanity-lib.sh PASS: gnutls-cli-resume.sh PASS: system-override-sig.sh PASS: system-override-hash.sh PASS: mini-record-2 PASS: system-override-invalid.sh PASS: rng-sigint PASS: server-weak-keys.sh PASS: no-signal PASS: gnutls-cli-earlydata.sh PASS: rng-op-random PASS: system-override-sig-tls.sh PASS: rng-op-nonce PASS: system-override-sig-allowlist.sh PASS: system-override-hash-filters-prf.sh PASS: system-override-hash-allowlist.sh PASS: rng-op-key PASS: system-override-special-allowlist.sh PASS: system-override-profiles.sh PASS: system-override-compress-cert.sh PASS: system-override-tls.sh PASS: system-override-allow-rsa-pkcs1-encrypt.sh SKIP: pkcs11-provider/test-pkcs11-provider.sh PASS: system-override-versions.sh PASS: ocsp-tests/ocsp-tls-connection.sh PASS: system-override-curves.sh PASS: p11-kit-trust.sh SKIP: testpkcs11.sh SKIP: certtool-pkcs11.sh SKIP: pkcs11-tool.sh SKIP: p11-kit-load.sh PASS: system-override-kx.sh PASS: logfile-option.sh PASS: gnutls-cli-invalid-crl.sh PASS: gnutls-cli-self-signed.sh PASS: profile-tests.sh PASS: system-override-versions-allowlist.sh PASS: system-override-curves-allowlist.sh PASS: gnutls-cli-debug.sh PASS: dtls-pthread PASS: system-override-default-priority-string.sh PASS: tls-pthread PASS: protocol-set-allowlist.sh PASS: gnutls-cli-rawpk.sh PASS: serv-udp.sh PASS: pqc-hybrid-kx.sh PASS: tls13/key_update PASS: dtls/dtls-resume.sh PASS: mini-dtls-hello-verify-48 PASS: dh-fips-approved.sh PASS: mini-loss-time PASS: dtls-rehandshake-anon PASS: dtls-rehandshake-cert PASS: dtls-rehandshake-cert-2 PASS: dtls/dtls.sh ============================================================================ Testsuite summary for GnuTLS 3.8.10 ============================================================================ # TOTAL: 506 # PASS: 457 # SKIP: 48 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================ See tests/test-suite.log for debugging. Some test(s) failed. Please report this to bugs@gnutls.org, together with the test-suite.log file (gzipped) and your system information. Thanks. ============================================================================ make[4]: *** [Makefile:10340: test-suite.log] Error 1 make[4]: Leaving directory '/startdir/src/gnutls-3.8.10/tests' make[3]: *** [Makefile:10475: check-TESTS] Error 2 make[3]: Leaving directory '/startdir/src/gnutls-3.8.10/tests' make[2]: *** [Makefile:13751: check-am] Error 2 make[2]: Leaving directory '/startdir/src/gnutls-3.8.10/tests' make[1]: *** [Makefile:10233: check-recursive] Error 1 make[1]: Leaving directory '/startdir/src/gnutls-3.8.10/tests' make: *** [Makefile:2930: check-recursive] Error 1 ==> ERROR: A failure occurred in check(). Aborting... ==> ERROR: Build failed, check /home/alhp/workspace/chroot/build_64ef0b75-ff68-4b65-b24a-0925cf3e1623/build