0006-QOffsetStringArray-fix-ambiguous-qOffsetStringArray-.patch 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. From 0e0e075aeb4d8a1efa2178c0de3084b800ab62ed Mon Sep 17 00:00:00 2001
  2. From: Marc Mutz <marc.mutz@qt.io>
  3. Date: Sun, 4 Sep 2022 12:31:10 +0200
  4. Subject: [PATCH] QOffsetStringArray: fix ambiguous qOffsetStringArray
  5. overloads
  6. There are two qOffsetStringArray overloads: one in QT_NAMESPACE, the
  7. other in QT_PREPEND_NAMESPACE(QtPrivate). In TUs which use using
  8. namespace QtPrivate, a call to qOffsetStringArray() may become
  9. ambiguous.
  10. Fix by renaming the qOffsetStringArray() to makeOffsetStringArray().
  11. Pick-to: 6.4 6.3 6.2
  12. Change-Id: I242a969f363e230d6a8dfb048601a0c024724f6a
  13. Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
  14. Upstream: https://github.com/qt/qtbase/commit/21c5eeba673694f865badfd137ee9fc474177ae0
  15. [Thomas: needed to backport fix for CVE-2023-38197]
  16. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
  17. ---
  18. src/corelib/tools/qoffsetstringarray_p.h | 4 ++--
  19. 1 file changed, 2 insertions(+), 2 deletions(-)
  20. diff --git a/src/corelib/tools/qoffsetstringarray_p.h b/src/corelib/tools/qoffsetstringarray_p.h
  21. index 461d61a2bae..fe3f7fbd5ff 100644
  22. --- a/src/corelib/tools/qoffsetstringarray_p.h
  23. +++ b/src/corelib/tools/qoffsetstringarray_p.h
  24. @@ -118,7 +118,7 @@ template <size_t KL, size_t VL> struct StaticMapEntry
  25. };
  26. template <typename StringExtractor, typename... T>
  27. -constexpr auto qOffsetStringArray(StringExtractor extractString, const T &... entries)
  28. +constexpr auto makeOffsetStringArray(StringExtractor extractString, const T &... entries)
  29. {
  30. constexpr size_t Count = sizeof...(T);
  31. constexpr qsizetype StringLength = (sizeof(extractString(T{})) + ...);
  32. @@ -142,7 +142,7 @@ template<int ... Nx>
  33. constexpr auto qOffsetStringArray(const char (&...strings)[Nx]) noexcept
  34. {
  35. auto extractString = [](const auto &s) -> decltype(auto) { return s; };
  36. - return QtPrivate::qOffsetStringArray(extractString, QtPrivate::StaticString(strings)...);
  37. + return QtPrivate::makeOffsetStringArray(extractString, QtPrivate::StaticString(strings)...);
  38. }
  39. QT_WARNING_POP
  40. --
  41. 2.46.0