From 1d4b86cb3e2d5a8725eefd8f227ac5a221994a7c Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 30 Sep 2024 11:01:24 -0500 Subject: [PATCH] fix: -Wunsafe-buffer-usage warnings in AddComponentResourceEntries() (#44024) fix: -Wunsafe-buffer-usage warnings in ElectronComponentExtensionResourceManager::AddComponentResourceEntries() just replace pointer-and-length args with a span --- ...tron_component_extension_resource_manager.cc | 17 +++++++---------- ...ctron_component_extension_resource_manager.h | 5 +++-- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/shell/browser/extensions/electron_component_extension_resource_manager.cc b/shell/browser/extensions/electron_component_extension_resource_manager.cc index b675f630b9..66968ed0cb 100644 --- a/shell/browser/extensions/electron_component_extension_resource_manager.cc +++ b/shell/browser/extensions/electron_component_extension_resource_manager.cc @@ -24,10 +24,9 @@ namespace extensions { ElectronComponentExtensionResourceManager:: ElectronComponentExtensionResourceManager() { - AddComponentResourceEntries(kComponentExtensionResources, - kComponentExtensionResourcesSize); + AddComponentResourceEntries(kComponentExtensionResources); #if BUILDFLAG(ENABLE_PDF_VIEWER) - AddComponentResourceEntries(kPdfResources, kPdfResourcesSize); + AddComponentResourceEntries(kPdfResources); // Register strings for the PDF viewer, so that $i18n{} replacements work. base::Value::Dict pdf_strings; @@ -80,20 +79,18 @@ ElectronComponentExtensionResourceManager::GetTemplateReplacementsForExtension( } void ElectronComponentExtensionResourceManager::AddComponentResourceEntries( - const webui::ResourcePath* entries, - size_t size) { + const base::span entries) { base::FilePath gen_folder_path = base::FilePath().AppendASCII( "@out_folder@/gen/chrome/browser/resources/"); gen_folder_path = gen_folder_path.NormalizePathSeparators(); - for (size_t i = 0; i < size; ++i) { - base::FilePath resource_path = - base::FilePath().AppendASCII(entries[i].path); + for (const auto& entry : entries) { + base::FilePath resource_path = base::FilePath().AppendASCII(entry.path); resource_path = resource_path.NormalizePathSeparators(); if (!gen_folder_path.IsParent(resource_path)) { DCHECK(!base::Contains(path_to_resource_id_, resource_path)); - path_to_resource_id_[resource_path] = entries[i].id; + path_to_resource_id_[resource_path] = entry.id; } else { // If the resource is a generated file, strip the generated folder's path, // so that it can be served from a normal URL (as if it were not @@ -102,7 +99,7 @@ void ElectronComponentExtensionResourceManager::AddComponentResourceEntries( base::FilePath().AppendASCII(resource_path.AsUTF8Unsafe().substr( gen_folder_path.value().length())); DCHECK(!base::Contains(path_to_resource_id_, effective_path)); - path_to_resource_id_[effective_path] = entries[i].id; + path_to_resource_id_[effective_path] = entry.id; } } } diff --git a/shell/browser/extensions/electron_component_extension_resource_manager.h b/shell/browser/extensions/electron_component_extension_resource_manager.h index 2dd4de3a58..b56d7ce1a6 100644 --- a/shell/browser/extensions/electron_component_extension_resource_manager.h +++ b/shell/browser/extensions/electron_component_extension_resource_manager.h @@ -10,6 +10,7 @@ #include #include +#include "base/containers/span.h" #include "base/files/file_path.h" #include "extensions/browser/component_extension_resource_manager.h" #include "ui/base/webui/resource_path.h" @@ -38,8 +39,8 @@ class ElectronComponentExtensionResourceManager const std::string& extension_id) const override; private: - void AddComponentResourceEntries(const webui::ResourcePath* entries, - size_t size); + void AddComponentResourceEntries( + base::span entries); // A map from a resource path to the resource ID. Used by // IsComponentExtensionResource.