1. 23 May, 2022 1 commit
  2. 20 May, 2022 3 commits
  3. 18 May, 2022 3 commits
  4. 17 May, 2022 4 commits
    • Use NullSafeStringView for const char* args to absl::StrCat, treating null pointers as "" · e92505d8
      Fixes #1167
      
      PiperOrigin-RevId: 449328725
      Change-Id: I813785db77b94efa49eeeff4c93449334c380935
      Dino Radakovic committed
    • raw_logging: Extract the inlined no-hook-registered behavior for LogPrefixHook… · 7d3b4c86
      raw_logging: Extract the inlined no-hook-registered behavior for LogPrefixHook to a default implementation.
      
      PiperOrigin-RevId: 449306617
      Change-Id: Ia3e87d2edcae7e9874998f21a0e2ff245e48fd96
      Andy Getzendanner committed
    • absl: fix use-after-free in Mutex/CondVar · 9444b11e
      Both Mutex and CondVar signal PerThreadSem/Waiter after satisfying the wait condition,
      as the result the waiting thread may return w/o waiting on the
      PerThreadSem/Waiter at all. If the waiting thread then exits, it currently
      destroys Waiter object. As the result Waiter::Post can be called on
      already destroyed object.
      PerThreadSem/Waiter must be type-stable after creation and must not be destroyed.
      The futex-based implementation is the only one that is not affected by the bug
      since there is effectively nothing to destroy (maybe only UBSan/ASan
      could complain about calling methods on a destroyed object).
      
      Here is the problematic sequence of events:
      
      1: void Mutex::Block(PerThreadSynch *s) {
      2:   while (s->state.load(std::memory_order_acquire) == PerThreadSynch::kQueued) {
      3:     if (!DecrementSynchSem(this, s, s->waitp->timeout)) {
      
      4: PerThreadSynch *Mutex::Wakeup(PerThreadSynch *w) {
      5:   ...
      6:   w->state.store(PerThreadSynch::kAvailable, std::memory_order_release);
      7:   IncrementSynchSem(this, w);
      8:   ...
      9: }
      
      Consider line 6 is executed, then line 2 observes kAvailable and
      line 3 is not called. The thread executing Mutex::Block returns from
      the method, acquires the mutex, releases the mutex, exits and destroys
      PerThreadSem/Waiter.
      Now Mutex::Wakeup resumes and executes line 7 on the destroyed object. Boom!
      
      CondVar uses a similar pattern.
      
      Moreover the semaphore-based Waiter implementation is not even destruction-safe
      (the Waiter cannot be used to signal own destruction). So even if Mutex/CondVar
      would always pair Waiter::Post with Waiter::Wait before destroying PerThreadSem/Waiter,
      it would still be subject to use-after-free bug on the semaphore.
      
      PiperOrigin-RevId: 449159939
      Change-Id: I497134fa8b6ce1294a422827c5f0de0e897cea31
      Abseil Team committed
    • absl: fix live-lock in CondVar · aac2279f
      CondVar::WaitWithTimeout can live-lock when timeout is racing with Signal/SignalAll
      and Signal/SignalAll thread is not scheduled due to priorities, affinity or other
      scheduler artifacts. This could lead to stalls of up to tens of seconds in some cases.
      PiperOrigin-RevId: 449159670
      Change-Id: I64bbd277c1f91964cfba3306ba8a80eeadf85f64
      Abseil Team committed
  5. 16 May, 2022 1 commit
  6. 13 May, 2022 1 commit
  7. 12 May, 2022 3 commits
  8. 11 May, 2022 1 commit
  9. 10 May, 2022 1 commit
  10. 05 May, 2022 2 commits
  11. 04 May, 2022 4 commits
  12. 03 May, 2022 2 commits
  13. 02 May, 2022 1 commit
  14. 29 Apr, 2022 1 commit
  15. 25 Apr, 2022 2 commits
  16. 22 Apr, 2022 2 commits
  17. 21 Apr, 2022 1 commit
    • Export of internal Abseil changes · 7c6608d0
      --
      6d4e969ad240d248bfeb644b3b76fffae0f07882 by Christian Blichmann <cblichmann@google.com>:
      
      cmake: Fix description of `ABSL_USE_EXTERNAL_GOOGLETEST` option
      
      There is no `add_subproject()` in CMake.
      
      PiperOrigin-RevId: 443087953
      Change-Id: I30c2118638f99ad1389ae197e2c81d1e5f298882
      GitOrigin-RevId: 6d4e969ad240d248bfeb644b3b76fffae0f07882
      Abseil Team committed
  18. 19 Apr, 2022 1 commit
    • Export of internal Abseil changes · 3dccef2a
      --
      6457ad659de86ce4cae1e9f7cb03a701c6c2851e by Abseil Team <absl-team@google.com>:
      
      Introduced ErrnoToStatusCode and ErrnoToStatus to abseil.
      
      PiperOrigin-RevId: 442903450
      Change-Id: I9c062b34a3811216f43eef56e631eada3b4e3e84
      GitOrigin-RevId: 6457ad659de86ce4cae1e9f7cb03a701c6c2851e
      Abseil Team committed
  19. 18 Apr, 2022 1 commit
    • Export of internal Abseil changes · c27ab068
      --
      3d018c03a34bf273a4b24b3584ed77f0a6d21686 by Abseil Team <absl-team@google.com>:
      
      Fix a spelling typo (s/boundries/boundaries).
      
      PiperOrigin-RevId: 442041877
      Change-Id: I608020697d37b85316bb9a0838e4b457659c926c
      
      --
      518b8119e51db24ce7fb0fd2fe537ec43825c3e6 by Dino Radakovic <dinor@google.com>:
      
      absl/types/internal/variant: Make include guard uppercase
      
      https://google.github.io/styleguide/cppguide.html#The__define_Guard
      
      PiperOrigin-RevId: 441911692
      Change-Id: I9837dd07f20204d8253f20627b0917a34dc21825
      
      --
      b91696c38310a7cae8c1ea9e2d479495f5dc3f69 by Greg Falcon <gfalcon@google.com>:
      
      Add an internal-only API to wrap __builtin_prefetch() if available.
      
      This private API is intended for future use by the Abseil implementation.  Like any internal-namespaced function, it may be changed or removed at any time.
      
      PiperOrigin-RevId: 441894616
      Change-Id: Iaa48bd4680b373f4a0d5afab0cb35e2a1908595f
      
      --
      0f01e8b0551a662e02dff60840c54320f987315f by Derek Mauro <dmauro@google.com>:
      
      C++20: Use the standard `constinit` keyword for `ABSL_CONST_INIT` when available
      
      PiperOrigin-RevId: 441778874
      Change-Id: I70c616469752ff23b326b1c615437599f42cc6aa
      GitOrigin-RevId: 3d018c03a34bf273a4b24b3584ed77f0a6d21686
      Abseil Team committed
  20. 14 Apr, 2022 1 commit
  21. 12 Apr, 2022 1 commit
    • Export of internal Abseil changes · ac1398a6
      --
      f4c7e510922668c68be4aa79a00867c3d3ca9f95 by Derek Mauro <dmauro@google.com>:
      
      Many improvements to LeakChecker builds
      
      The presence of the LeakChecker is now detected when possible. GCC
      users using LeakChecker in standalone mode still need to use
      -DLEAK_CHECKER. This is now documented in the header.
      
      The hacky targets used for testing leak checking have been removed in
      favor of testing in AddressSanitizer mode on Kokoro.
      
      Fixes #885
      Fixes #1153
      
      PiperOrigin-RevId: 441203393
      Change-Id: Ibe64ef6b104bcaf31839ff7184e558cc86abdd1c
      
      --
      5c70a23aa83b8152ab95d2cf21662fc63c80ef7d by Abseil Team <absl-team@google.com>:
      
      Add a benchmark for stacktrace
      
      PiperOrigin-RevId: 441196473
      Change-Id: I4c9aa2e797aa2cae09abfaaee3abe5c09eb62fc4
      
      --
      50b406052273b9d5bad04a7860a96e4d5d956c02 by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 441114481
      Change-Id: I667af7a50d5631ca91289dd24c91ba90233e0184
      
      --
      568b4eaac120b420bce5290179d407d2b57d5bae by Dino Radakovic <dinor@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 440894155
      Change-Id: Ia587ffc65a8321126585fb363b7c0ca8cc2a0da2
      
      --
      d53948eace4f3a10ac5a6c1496dc51b81adc412c by Abseil Team <absl-team@google.com>:
      
      Explicitly give internal linkage to symbols which are not used outside of their
      translation units.
      
      PiperOrigin-RevId: 440424519
      Change-Id: I531c5e229d443375483b7550a34f48042589a99b
      GitOrigin-RevId: f4c7e510922668c68be4aa79a00867c3d3ca9f95
      Abseil Team committed
  22. 07 Apr, 2022 1 commit
    • Export of internal Abseil changes · e854df09
      --
      0c8848ebedc07470c7ab647a5bb8949481540ce9 by Dino Radakovic <dinor@google.com>:
      
      Define absl::base_internal::invoke using std::invoke when C++ >= 17
      
      PiperOrigin-RevId: 439880834
      Change-Id: I3622fcf473501d54c57575118a11d54c19573446
      GitOrigin-RevId: 0c8848ebedc07470c7ab647a5bb8949481540ce9
      Abseil Team committed
  23. 06 Apr, 2022 1 commit
    • Export of internal Abseil changes · 9fed77a6
      --
      ef2bf829c333f378ecc12f3259e3187cdb75a3d5 by Abseil Team <absl-team@google.com>:
      
      debugging: fix the VDSO symbol name used for unwinding on RISC-V Linux
      
      The name listed in `man vdso` is incorrect. Instead, use the name from `linux-5.16/arch/riscv/kernel/vdso/rt_sigreturn.S`
      
      PiperOrigin-RevId: 439654174
      Change-Id: Ib39d066f416681720068e806e828a2c76a14a532
      
      --
      43dfad824afd36cfc3e5049b4fea71a2bccb066c by Benjamin Barenblat <bbaren@google.com>:
      
      Check printf format strings in str_format_convert_test
      
      Add ABSL_PRINTF_ATTRIBUTE to appropriate functions in
      strings/internal/str_format/convert_test. Correct
      TypedFormatConvertTest.Char, which was accidentally passing values of
      types larger than int to StrPrint.
      
      PiperOrigin-RevId: 439388148
      Change-Id: I6cde4e8e0c6455064138192430f07f4c990be0bc
      
      --
      f84b4ab2c3b070c8af0c82742ac7a8a4bf443bca by Derek Mauro <dmauro@google.com>:
      
      Use __builtin_memcmp in the absl::string_view implementation
      starting with MSVC 16.9, where it first appeared
      
      This enables more constexpr operations
      
      PiperOrigin-RevId: 439317316
      Change-Id: Iaf1ce76b60901d4b2d5b96be5900c56572f57b15
      GitOrigin-RevId: ef2bf829c333f378ecc12f3259e3187cdb75a3d5
      Abseil Team committed
  24. 04 Apr, 2022 1 commit
    • Export of internal Abseil changes · 6f43f5bb
      --
      afa44fa0245a1cfb1824ef9697b3fa77fa9615c9 by Laramie Leavitt <lar@google.com>:
      
      Comment CMakeLists.txt about internal absl_cc_library() targets.
      
      From what I can tell, these are the CMake targets that are public:
      
          absl::algorithm
          absl::algorithm_container
          absl::base
          absl::core_headers
          absl::dynamic_annotations
          absl::log_severity
          absl::cleanup
          absl::btree
          absl::fixed_array
          absl::flat_hash_map
          absl::flat_hash_set
          absl::inlined_vector
          absl::node_hash_map
          absl::node_hash_set
          absl::debugging
          absl::failure_signal_handler
          absl::leak_check
          absl::leak_check_disable
          absl::stacktrace
          absl::symbolize
          absl::flags
          absl::flags_commandlineflag
          absl::flags_config
          absl::flags_marshalling
          absl::flags_parse
          absl::flags_reflection
          absl::flags_usage
          absl::bind_front
          absl::function_ref
          absl::hash
          absl::hash_testing
          absl::memory
          absl::meta
          absl::type_traits
          absl::bits
          absl::int128
          absl::numeric
          absl::numeric_representation
          absl::exponential_biased
          absl::periodic_sampler
          absl::sample_recorder
          absl::random_bit_gen_ref
          absl::random_distributions
          absl::random_mocking_bit_gen
          absl::random_random
          absl::random_seed_gen_exception
          absl::random_seed_sequences
          absl::status
          absl::statusor
          absl::cord
          absl::cord_test_helpers
          absl::str_format
          absl::strings
          absl::synchronization
          absl::civil_time
          absl::time
          absl::time_zone
          absl::any
          absl::bad_any_cast
          absl::bad_optional_access
          absl::bad_variant_access
          absl::compare
          absl::optional
          absl::span
          absl::variant
          absl::utility
      
      PiperOrigin-RevId: 438702788
      Change-Id: Icf611c35e88f03cd2493a95f61617605305d4e8e
      
      --
      a99f60847578e6c0df6befadb29a01c86def0d21 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438647928
      Change-Id: I141eadd17d6e8607df25ebc893aecefa0239a72f
      
      --
      b23e77e8f62a77023188594390c9e491c507d22c by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438628502
      Change-Id: I40c4297716c8c1621ba8b02a22393bfcbefb5b5e
      GitOrigin-RevId: afa44fa0245a1cfb1824ef9697b3fa77fa9615c9
      Abseil Team committed