Below is a differential between the unpatched vulnerable code and the patched update, for reference.
--- a/osm/osm-icon-class.php
+++ b/osm/osm-icon-class.php
@@ -1,5 +1,5 @@
<?php
-/* (c) Copyright 2021 Michael Kang (wp-osm-plugin.Hyumika.com)
+/* (c) Copyright 2026 Michael Kang (wp-osm-plugin.Hyumika.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -113,109 +113,104 @@
$a_IconName == "mic_green_restaurant_02.png" || $a_IconName == "mic_green_hut_01.png" ||
$a_IconName == "mic_green_tent_01.png" || $a_IconName == "mic_blue_ski_tour_01.png" ||
$a_IconName == "mic_green_hut_02.png" || $a_IconName == "mic_green_caravan_01.png" ||
-$a_IconName == "mic_black_acupuncture_10.png" || $a_IconName == "mic_black_airline_10.png" ||
-$a_IconName == "mic_black_airport_10.png" || $a_IconName == "mic_black_archery_10.png" ||
-$a_IconName == "mic_black_area51_10.png" || $a_IconName == "mic_black_atom_10.png" ||
-$a_IconName == "mic_black_badmint_10.png" || $a_IconName == "mic_black_balloon_10.png" ||
-$a_IconName == "mic_black_bar_10.png" || $a_IconName == "mic_black_bank_10.png" ||
-$a_IconName == "mic_black_barrierfree_10.png" || $a_IconName == "mic_black_barbe_10.png" ||
-$a_IconName == "mic_black_basketb_10.png" || $a_IconName == "mic_black_baseball_10.png" ||
-$a_IconName == "mic_black_beer_10.png" || $a_IconName == "mic_black_beach_10.png" ||
-$a_IconName == "mic_black_boatbridge_10.png" || $a_IconName == "mic_black_bicycle_10.png" ||
-$a_IconName == "mic_black_boxing_10.png" || $a_IconName == "mic_black_border_10.png" ||
-$a_IconName == "mic_black_bridge_10.png" || $a_IconName == "mic_black_brental_10.png" ||
-$a_IconName == "mic_black_bus_10.png" || $a_IconName == "mic_black_building_10.png" ||
-$a_IconName == "mic_black_camp_10.png" || $a_IconName == "mic_black_busstop_10.png" ||
-$a_IconName == "mic_black_camp_11.png" || $a_IconName == "mic_black_camp_12.png" ||
-$a_IconName == "mic_black_cardmoney_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
-$a_IconName == "mic_black_carno_10.png" || $a_IconName == "mic_black_carnival_10.png" ||
-$a_IconName == "mic_black_cars_10.png" || $a_IconName == "mic_black_ccski_10.png" ||
-$a_IconName == "mic_black_cemetary_10.png" || $a_IconName == "mic_black_champ_10.png" ||
-$a_IconName == "mic_black_charger_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
-$a_IconName == "mic_black_chess_10.png" || $a_IconName == "mic_black_check_10.png" ||
-$a_IconName == "mic_black_cinema_10.png" || $a_IconName == "mic_black_chute_10.png" ||
-$a_IconName == "mic_black_climbing_10.png" || $a_IconName == "mic_black_citytrain_10.png" ||
-$a_IconName == "mic_black_coffeshop_10.png" || $a_IconName == "mic_black_climbing_11.png" ||
-$a_IconName == "mic_green_hut_02.png" || $a_IconName == "mic_black_congress_10.png" ||
-$a_IconName == "mic_black_court_10.png" || $a_IconName == "mic_black_crisisarea_10.png" ||
-$a_IconName == "mic_black_cross_10.png" || $a_IconName == "mic_black_crossbike_10.png" ||
-$a_IconName == "mic_black_crossbike2_10.png" || $a_IconName == "mic_black_crossing_10.png" ||
-$a_IconName == "mic_black_cycling_10.png" || $a_IconName == "mic_black_darling_10.png" ||
-$a_IconName == "mic_black_desert_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
-$a_IconName == "mic_black_diver_10.png" || $a_IconName == "mic_black_diver2_10.png" ||
-$a_IconName == "mic_black_doc_10.png" || $a_IconName == "mic_black_drinkwater_10.png" ||
-$a_IconName == "mic_black_drone_10.png" || $a_IconName == "mic_black_embassy_10.png" ||
-$a_IconName == "mic_black_energy_10.png" || $a_IconName == "mic_black_fasting_10.png" ||
-$a_IconName == "mic_black_ferry_10.png" || $a_IconName == "mic_black_firstaid_10.png" ||
-$a_IconName == "mic_black_fishing_10.png" || $a_IconName == "mic_black_flowers_10.png" ||
-$a_IconName == "mic_black_football_10.png" || $a_IconName == "mic_black_forbidden_10.png" ||
-$a_IconName == "mic_black_forbidden_11.png" || $a_IconName == "mic_black_funpark_10.png" ||
-$a_IconName == "mic_black_g10088_10.png" || $a_IconName == "mic_black_g21090_10.png" ||
-$a_IconName == "mic_black_g6269_10.png" || $a_IconName == "mic_black_gasstation_10.png" ||
-$a_IconName == "mic_black_geocaching_10.png" || $a_IconName == "mic_black_goal_10.png" ||
-$a_IconName == "mic_black_godhouse_10.png" || $a_IconName == "mic_black_graffity_10.png" ||
-$a_IconName == "mic_black_grandprix_10.png" || $a_IconName == "mic_black_handball_10.png" ||
-$a_IconName == "mic_black_harbor_10.png" || $a_IconName == "mic_black_hardrock_10.png" ||
-$a_IconName == "mic_black_healer_10.png" || $a_IconName == "mic_black_helicopter_10.png" ||
-$a_IconName == "mic_black_highschool_10.png" || $a_IconName == "mic_black_highway_10.png" ||
-$a_IconName == "mic_black_hockey_10.png" || $a_IconName == "mic_black_hospital_10.png" ||
-$a_IconName == "mic_black_hut_10.png" || $a_IconName == "mic_black_hymering_10.png" ||
-$a_IconName == "mic_black_icefish_10.png" || $a_IconName == "mic_black_icehok_10.png" ||
-$a_IconName == "mic_black_iceskate_10.png" || $a_IconName == "mic_black_industry_10.png" ||
-$a_IconName == "mic_black_infopoint_10.png" || $a_IconName == "mic_black_jailhouse_10.png" ||
-$a_IconName == "mic_black_library_10.png" || $a_IconName == "mic_black_light_10.png" ||
-$a_IconName == "mic_black_limit_10.png" || $a_IconName == "mic_black_marathon_10.png" ||
-$a_IconName == "mic_black_market_10.png" || $a_IconName == "mic_black_military_10.png" ||
-$a_IconName == "mic_black_mobile_10.png" || $a_IconName == "mic_black_monument_10.png" ||
-$a_IconName == "mic_black_monument_10.png" || $a_IconName == "mic_black_mosque_10.png" ||
-$a_IconName == "mic_black_museum_10.png" || $a_IconName == "mic_black_nardicwalk_10.png" ||
-$a_IconName == "mic_black_nature_10.png" || $a_IconName == "mic_black_netcoffee_10.png" ||
-$a_IconName == "mic_black_nicolastation_10.png" || $a_IconName == "mic_black_nodrone_10.png" ||
-$a_IconName == "mic_black_noenergy_10.png" || $a_IconName == "mic_black_nolan_10.png" ||
-$a_IconName == "mic_black_nolight_10.png" || $a_IconName == "mic_black_nomobile_10.png" ||
-$a_IconName == "mic_black_nudebeach_10.png" || $a_IconName == "mic_black_observ_10.png" ||
-$a_IconName == "mic_black_olymp_10.png" || $a_IconName == "mic_black_olymp2_10.png" ||
-$a_IconName == "mic_black_olymphouse_10.png" || $a_IconName == "mic_black_paraglide_10.png" ||
-$a_IconName == "mic_black_parking_10.png" || $a_IconName == "mic_black_parkride_10.png" ||
-$a_IconName == "mic_black_pharmacy_10.png" || $a_IconName == "mic_black_playyard_10.png" ||
-$a_IconName == "mic_black_police_10.png" || $a_IconName == "mic_black_postoffice_10.png" ||
-$a_IconName == "mic_black_pov_10.png" || $a_IconName == "mic_black_pubview_10.png" ||
-$a_IconName == "mic_black_radiotele_10.png" || $a_IconName == "mic_black_railroad_10.png" ||
-$a_IconName == "mic_black_rambler_10.png" || $a_IconName == "mic_black_redlight_10.png" ||
-$a_IconName == "mic_black_remote_10.png" || $a_IconName == "mic_black_rent_10.png" ||
-$a_IconName == "mic_black_rentbike_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
-$a_IconName == "mic_black_rescheli_10.png" || $a_IconName == "mic_black_renting_10.png" ||
-$a_IconName == "mic_black_ride_10.png" || $a_IconName == "mic_black_restaurant_10.png" ||
-$a_IconName == "mic_black_ropeway_10.png" || $a_IconName == "mic_black_roller_10.png" ||
-$a_IconName == "mic_black_sail_10.png" || $a_IconName == "mic_black_runner_10.png" ||
-$a_IconName == "mic_black_sailing2_10.png" || $a_IconName == "mic_black_science_10.png" ||
-$a_IconName == "mic_black_seaworld_10.png" || $a_IconName == "mic_black_service_10.png" ||
-$a_IconName == "mic_black_shopping_10.png" || $a_IconName == "mic_black_skatboard_10.png" ||
-$a_IconName == "mic_black_skijump_10.png" || $a_IconName == "mic_black_smoker_10.png" ||
-$a_IconName == "mic_black_snow_10.png" || $a_IconName == "mic_black_spotfield_10.png" ||
-$a_IconName == "mic_black_start_10.png" || $a_IconName == "mic_black_stop_10.png" ||
-$a_IconName == "mic_black_sub_10.png" || $a_IconName == "mic_black_subway_10.png" ||
-$a_IconName == "mic_black_surfer_10.png" || $a_IconName == "mic_black_survival_10.png" ||
-$a_IconName == "mic_black_swimmer_10.png" || $a_IconName == "mic_black_table_10.png" ||
-$a_IconName == "mic_black_tennis_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
-$a_IconName == "mic_black_tomb_10.png" || $a_IconName == "mic_black_theater_10.png" ||
-$a_IconName == "mic_black_townhall_10.png" || $a_IconName == "mic_black_train_10.png" ||
-$a_IconName == "mic_black_triathlon_10.png" || $a_IconName == "mic_black_turbine_10.png" ||
-$a_IconName == "mic_black_undergr_10.png" || $a_IconName == "mic_black_walker_10.png" ||
-$a_IconName == "mic_black_wastewater_10.png" || $a_IconName == "mic_black_waterball_10.png" ||
-$a_IconName == "mic_black_waterhole_10.png" || $a_IconName == "mic_black_waters_10.png" ||
-$a_IconName == "mic_black_wifi_10.png" || $a_IconName == "mic_black_wifino_10.png" ||
-$a_IconName == "mic_black_windsurf_10.png" || $a_IconName == "mic_black_wine_10.png" ||
-$a_IconName == "mic_black_xgames_10.png" || $a_IconName == "mic_black_xgames_11.png" ||
-$a_IconName == "mic_black_yoga_10.png" || $a_IconName == "mic_black_youthhostel_10.png" ||
-$a_IconName == "mic_black_zoo_10.png" || $a_IconName == "mic_black_soccer_10.png" ||
-$a_IconName == "mic_gold_stolperstein-L.png" || $a_IconName == "mic_grey_stolperstein_L.png" ||
-$a_IconName == "mic_grey_stolperstein_M.png"
-
-
-
-
-
+ $a_IconName == "mic_black_acupuncture_10.png" || $a_IconName == "mic_black_airline_10.png" ||
+ $a_IconName == "mic_black_airport_10.png" || $a_IconName == "mic_black_archery_10.png" ||
+ $a_IconName == "mic_black_area51_10.png" || $a_IconName == "mic_black_atom_10.png" ||
+ $a_IconName == "mic_black_badmint_10.png" || $a_IconName == "mic_black_balloon_10.png" ||
+ $a_IconName == "mic_black_bar_10.png" || $a_IconName == "mic_black_bank_10.png" ||
+ $a_IconName == "mic_black_barrierfree_10.png" || $a_IconName == "mic_black_barbe_10.png" ||
+ $a_IconName == "mic_black_basketb_10.png" || $a_IconName == "mic_black_baseball_10.png" ||
+ $a_IconName == "mic_black_beer_10.png" || $a_IconName == "mic_black_beach_10.png" ||
+ $a_IconName == "mic_black_boatbridge_10.png" || $a_IconName == "mic_black_bicycle_10.png" ||
+ $a_IconName == "mic_black_boxing_10.png" || $a_IconName == "mic_black_border_10.png" ||
+ $a_IconName == "mic_black_bridge_10.png" || $a_IconName == "mic_black_brental_10.png" ||
+ $a_IconName == "mic_black_bus_10.png" || $a_IconName == "mic_black_building_10.png" ||
+ $a_IconName == "mic_black_camp_10.png" || $a_IconName == "mic_black_busstop_10.png" ||
+ $a_IconName == "mic_black_camp_11.png" || $a_IconName == "mic_black_camp_12.png" ||
+ $a_IconName == "mic_black_cardmoney_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
+ $a_IconName == "mic_black_carno_10.png" || $a_IconName == "mic_black_carnival_10.png" ||
+ $a_IconName == "mic_black_cars_10.png" || $a_IconName == "mic_black_ccski_10.png" ||
+ $a_IconName == "mic_black_cemetary_10.png" || $a_IconName == "mic_black_champ_10.png" ||
+ $a_IconName == "mic_black_charger_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
+ $a_IconName == "mic_black_chess_10.png" || $a_IconName == "mic_black_check_10.png" ||
+ $a_IconName == "mic_black_cinema_10.png" || $a_IconName == "mic_black_chute_10.png" ||
+ $a_IconName == "mic_black_climbing_10.png" || $a_IconName == "mic_black_citytrain_10.png" ||
+ $a_IconName == "mic_black_coffeshop_10.png" || $a_IconName == "mic_black_climbing_11.png" ||
+ $a_IconName == "mic_green_hut_02.png" || $a_IconName == "mic_black_congress_10.png" ||
+ $a_IconName == "mic_black_court_10.png" || $a_IconName == "mic_black_crisisarea_10.png" ||
+ $a_IconName == "mic_black_cross_10.png" || $a_IconName == "mic_black_crossbike_10.png" ||
+ $a_IconName == "mic_black_crossbike2_10.png" || $a_IconName == "mic_black_crossing_10.png" ||
+ $a_IconName == "mic_black_cycling_10.png" || $a_IconName == "mic_black_darling_10.png" ||
+ $a_IconName == "mic_black_desert_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
+ $a_IconName == "mic_black_diver_10.png" || $a_IconName == "mic_black_diver2_10.png" ||
+ $a_IconName == "mic_black_doc_10.png" || $a_IconName == "mic_black_drinkwater_10.png" ||
+ $a_IconName == "mic_black_drone_10.png" || $a_IconName == "mic_black_embassy_10.png" ||
+ $a_IconName == "mic_black_energy_10.png" || $a_IconName == "mic_black_fasting_10.png" ||
+ $a_IconName == "mic_black_ferry_10.png" || $a_IconName == "mic_black_firstaid_10.png" ||
+ $a_IconName == "mic_black_fishing_10.png" || $a_IconName == "mic_black_flowers_10.png" ||
+ $a_IconName == "mic_black_football_10.png" || $a_IconName == "mic_black_forbidden_10.png" ||
+ $a_IconName == "mic_black_forbidden_11.png" || $a_IconName == "mic_black_funpark_10.png" ||
+ $a_IconName == "mic_black_g10088_10.png" || $a_IconName == "mic_black_g21090_10.png" ||
+ $a_IconName == "mic_black_g6269_10.png" || $a_IconName == "mic_black_gasstation_10.png" ||
+ $a_IconName == "mic_black_geocaching_10.png" || $a_IconName == "mic_black_goal_10.png" ||
+ $a_IconName == "mic_black_godhouse_10.png" || $a_IconName == "mic_black_graffity_10.png" ||
+ $a_IconName == "mic_black_grandprix_10.png" || $a_IconName == "mic_black_handball_10.png" ||
+ $a_IconName == "mic_black_harbor_10.png" || $a_IconName == "mic_black_hardrock_10.png" ||
+ $a_IconName == "mic_black_healer_10.png" || $a_IconName == "mic_black_helicopter_10.png" ||
+ $a_IconName == "mic_black_highschool_10.png" || $a_IconName == "mic_black_highway_10.png" ||
+ $a_IconName == "mic_black_hockey_10.png" || $a_IconName == "mic_black_hospital_10.png" ||
+ $a_IconName == "mic_black_hut_10.png" || $a_IconName == "mic_black_hymering_10.png" ||
+ $a_IconName == "mic_black_icefish_10.png" || $a_IconName == "mic_black_icehok_10.png" ||
+ $a_IconName == "mic_black_iceskate_10.png" || $a_IconName == "mic_black_industry_10.png" ||
+ $a_IconName == "mic_black_infopoint_10.png" || $a_IconName == "mic_black_jailhouse_10.png" ||
+ $a_IconName == "mic_black_library_10.png" || $a_IconName == "mic_black_light_10.png" ||
+ $a_IconName == "mic_black_limit_10.png" || $a_IconName == "mic_black_marathon_10.png" ||
+ $a_IconName == "mic_black_market_10.png" || $a_IconName == "mic_black_military_10.png" ||
+ $a_IconName == "mic_black_mobile_10.png" || $a_IconName == "mic_black_monument_10.png" ||
+ $a_IconName == "mic_black_monument_10.png" || $a_IconName == "mic_black_mosque_10.png" ||
+ $a_IconName == "mic_black_museum_10.png" || $a_IconName == "mic_black_nardicwalk_10.png" ||
+ $a_IconName == "mic_black_nature_10.png" || $a_IconName == "mic_black_netcoffee_10.png" ||
+ $a_IconName == "mic_black_nicolastation_10.png" || $a_IconName == "mic_black_nodrone_10.png" ||
+ $a_IconName == "mic_black_noenergy_10.png" || $a_IconName == "mic_black_nolan_10.png" ||
+ $a_IconName == "mic_black_nolight_10.png" || $a_IconName == "mic_black_nomobile_10.png" ||
+ $a_IconName == "mic_black_nudebeach_10.png" || $a_IconName == "mic_black_observ_10.png" ||
+ $a_IconName == "mic_black_olymp_10.png" || $a_IconName == "mic_black_olymp2_10.png" ||
+ $a_IconName == "mic_black_olymphouse_10.png" || $a_IconName == "mic_black_paraglide_10.png" ||
+ $a_IconName == "mic_black_parking_10.png" || $a_IconName == "mic_black_parkride_10.png" ||
+ $a_IconName == "mic_black_pharmacy_10.png" || $a_IconName == "mic_black_playyard_10.png" ||
+ $a_IconName == "mic_black_police_10.png" || $a_IconName == "mic_black_postoffice_10.png" ||
+ $a_IconName == "mic_black_pov_10.png" || $a_IconName == "mic_black_pubview_10.png" ||
+ $a_IconName == "mic_black_radiotele_10.png" || $a_IconName == "mic_black_railroad_10.png" ||
+ $a_IconName == "mic_black_rambler_10.png" || $a_IconName == "mic_black_redlight_10.png" ||
+ $a_IconName == "mic_black_remote_10.png" || $a_IconName == "mic_black_rent_10.png" ||
+ $a_IconName == "mic_black_rentbike_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
+ $a_IconName == "mic_black_rescheli_10.png" || $a_IconName == "mic_black_renting_10.png" ||
+ $a_IconName == "mic_black_ride_10.png" || $a_IconName == "mic_black_restaurant_10.png" ||
+ $a_IconName == "mic_black_ropeway_10.png" || $a_IconName == "mic_black_roller_10.png" ||
+ $a_IconName == "mic_black_sail_10.png" || $a_IconName == "mic_black_runner_10.png" ||
+ $a_IconName == "mic_black_sailing2_10.png" || $a_IconName == "mic_black_science_10.png" ||
+ $a_IconName == "mic_black_seaworld_10.png" || $a_IconName == "mic_black_service_10.png" ||
+ $a_IconName == "mic_black_shopping_10.png" || $a_IconName == "mic_black_skatboard_10.png" ||
+ $a_IconName == "mic_black_skijump_10.png" || $a_IconName == "mic_black_smoker_10.png" ||
+ $a_IconName == "mic_black_snow_10.png" || $a_IconName == "mic_black_spotfield_10.png" ||
+ $a_IconName == "mic_black_start_10.png" || $a_IconName == "mic_black_stop_10.png" ||
+ $a_IconName == "mic_black_sub_10.png" || $a_IconName == "mic_black_subway_10.png" ||
+ $a_IconName == "mic_black_surfer_10.png" || $a_IconName == "mic_black_survival_10.png" ||
+ $a_IconName == "mic_black_swimmer_10.png" || $a_IconName == "mic_black_table_10.png" ||
+ $a_IconName == "mic_black_tennis_10.png" || $a_IconName == "mic_green_caravan_01.png" ||
+ $a_IconName == "mic_black_tomb_10.png" || $a_IconName == "mic_black_theater_10.png" ||
+ $a_IconName == "mic_black_townhall_10.png" || $a_IconName == "mic_black_train_10.png" ||
+ $a_IconName == "mic_black_triathlon_10.png" || $a_IconName == "mic_black_turbine_10.png" ||
+ $a_IconName == "mic_black_undergr_10.png" || $a_IconName == "mic_black_walker_10.png" ||
+ $a_IconName == "mic_black_wastewater_10.png" || $a_IconName == "mic_black_waterball_10.png" ||
+ $a_IconName == "mic_black_waterhole_10.png" || $a_IconName == "mic_black_waters_10.png" ||
+ $a_IconName == "mic_black_wifi_10.png" || $a_IconName == "mic_black_wifino_10.png" ||
+ $a_IconName == "mic_black_windsurf_10.png" || $a_IconName == "mic_black_wine_10.png" ||
+ $a_IconName == "mic_black_xgames_10.png" || $a_IconName == "mic_black_xgames_11.png" ||
+ $a_IconName == "mic_black_yoga_10.png" || $a_IconName == "mic_black_youthhostel_10.png" ||
+ $a_IconName == "mic_black_zoo_10.png" || $a_IconName == "mic_black_soccer_10.png" ||
+ $a_IconName == "mic_gold_stolperstein-L.png" || $a_IconName == "mic_grey_stolperstein_L.png" ||
+ $a_IconName == "mic_grey_stolperstein_M.png"
){
return true;
}
@@ -223,6 +218,61 @@
return false;
}
}
+
+
+private function resolveIconUrl($raw_icon_name)
+{
+ error_log('--- resolveIconUrl START ---');
+ error_log('raw input: ' . print_r($raw_icon_name, true));
+
+ $raw_icon_name = trim((string) wp_unslash($raw_icon_name));
+ error_log('normalized input: ' . $raw_icon_name);
+
+ if ($raw_icon_name === '') {
+ error_log('FAILED: empty input');
+ return false;
+ }
+
+ if (!preg_match('#^[a-zA-Z0-9/_.-]+$#', $raw_icon_name)) {
+ error_log('FAILED: regex check');
+ return false;
+ }
+
+ if (!preg_match('#.(png|jpg|jpeg|gif|svg)$#i', $raw_icon_name)) {
+ error_log('FAILED: extension check');
+ return false;
+ }
+
+ // Versuch 1
+ $candidate = realpath(OSM_PLUGIN_URL. 'icons/' . $raw_icon_name);
+ error_log('candidate 1: ' . print_r($candidate, true));
+
+ if ($candidate !== false && is_file($candidate)) {
+ error_log('SUCCESS: candidate 1');
+ return plugins_url(basename($candidate), OSM_PLUGIN_FILE);
+ }
+
+ // Versuch 2 (Legacy)
+ $normalized = ltrim($raw_icon_name, '/');
+ $wp_content_pos = strpos($normalized, 'wp-content/');
+
+ if ($wp_content_pos !== false) {
+ $normalized = substr($normalized, $wp_content_pos);
+ $candidate = realpath(ABSPATH . $normalized);
+
+ error_log('candidate 2: ' . print_r($candidate, true));
+
+ if ($candidate !== false && is_file($candidate)) {
+ error_log('SUCCESS: candidate 2');
+ $relative = ltrim(substr($candidate, strlen(WP_CONTENT_DIR)), '/');
+ return content_url($relative);
+ }
+ }
+
+ error_log('FAILED: no valid path found');
+ return false;
+}
+
private function setIconsize($a_IconName, $a_IconHeight = -1, $a_IconWidth = -1, $a_IconFocus = -1){
Osm::traceText(DEBUG_INFO, "[setIconsize]: Name: ". $a_IconName." Height: ".$a_IconHeight."Width: ".$a_IconWidth." Focus: ".$a_IconFocus);
@@ -337,14 +387,29 @@
//Osm::traceText(DEBUG_ERROR, "width: ". $this->icon_offset_width);
}
- public function setIcon($a_IconName = 'mic_blue_pinother_02.png', $a_IconHeight = -1, $a_IconWidth = -1, $a_IconFocus = -1)
- {
- if ($a_IconName == 'NoName'){
- $a_IconName = 'mic_blue_pinother_02.png';
+public function setIcon($a_IconName = 'mic_blue_pinother_02.png', $a_IconHeight = -1, $a_IconWidth = -1, $a_IconFocus = -1)
+{
+ $a_IconName = trim((string) $a_IconName);
+
+ if ($a_IconName === '' || $a_IconName === 'NoName') {
+ $a_IconName = 'mic_blue_pinother_02.png';
}
+
$this->icon_name = $this->replaceOldIcon($a_IconName);
+
+ if ($this->isOsmIcon($this->icon_name)) {
+ $resolved_url = OSM_PLUGIN_URL . 'icons/' . ltrim($this->icon_name, '/');
+ } else {
+ $resolved_url = $this->resolveIconUrl($this->icon_name);
+ }
+
+ if ($resolved_url === false) {
+ $this->icon_name = 'mic_blue_pinother_02.png';
+ $resolved_url = OSM_PLUGIN_URL . 'icons/' . $this->icon_name;
+ }
+
+ $this->icon_URL = $resolved_url;
$this->setIconsize($this->icon_name, $a_IconHeight, $a_IconWidth, $a_IconFocus);
- $this->icon_URL = OSM_PLUGIN_ICONS_URL.$this->icon_name;
}
public function __construct($a_IconName = 'mic_blue_pinother_02.png', $a_IconHeight = -1, $a_IconWidth = -1, $a_IconFocus = -1){
--- a/osm/osm.php
+++ b/osm/osm.php
@@ -3,7 +3,7 @@
Plugin Name: OSM
Plugin URI: https://wp-osm-plugin.hyumika.com
Description: Embeds maps in your blog and adds geo data to your posts. Find samples and a forum on the <a href="https://wp-osm-plugin.hyumika.com">OSM plugin page</a>.
-Version: 6.1.15
+Version: 6.1.16
Author: MiKa
Author URI: http://www.hyumika.com
Minimum WordPress Version Required: 3.0
@@ -26,7 +26,7 @@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-define ("PLUGIN_VER", "V6.1.15");
+define ("PLUGIN_VER", "V6.1.16");
// modify anything about the marker for tagged posts here
// instead of the coding.
--- a/osm/osm_map_v3/osm-sc-osm_map_v3.php
+++ b/osm/osm_map_v3/osm-sc-osm_map_v3.php
@@ -258,7 +258,19 @@
$NumOfGpxKmlFiles = 0;
if ($file_color_list != 'NoColor') {
- $FileColorListArray = explode(',', $file_color_list);
+ $colors = explode(',', (string) wp_unslash($file_color_list));
+ foreach ($colors as $color) {
+ $color = sanitize_text_field($color);
+ $color = trim(strtolower($color));
+
+ if (preg_match('/^#([a-f0-9]{3}|[a-f0-9]{6})$/', $color) || preg_match('/^[a-z]+$/', $color) ) {
+ $FileColorListArray[] = $color;
+ } else {
+ Osm::traceText(DEBUG_ERROR, "file_color_list invalid: " . $color);
+ $FileColorListArray[0] = 'NoColor';
+ }
+ }
+
} else {
$FileColorListArray[0] = 'NoColor';
}
@@ -291,7 +303,7 @@
if (!empty($FileColorListArray[$key])) {
- $output .= '<span class="layerColor layerColorHidden" style="background-color:' . $FileColorListArray[$key] . '"></span>';
+ $output .= '<span class="layerColor layerColorHidden" style="background-color:' . esc_attr($FileColorListArray[$key]) . '"></span>';
}
$output .= '<span class="padding1em">' . trim($val) . '</span></span>';