Opublikowano 19 Maja 20241 r Czołem! Po dłuższej przerwie wracam do publikacji. Trochę wyszedłem z wprawy, więc czas wrócić do systematyczności. 😉 Dziś przygotowałem dla was rozwiązanie problemu, o którym dowiedziałem się od użytkownika . Wspomniał o nim jakiś czas temu na czacie, więc postanowiłem przeanalizować, czy faktycznie istnieje. Omówienie problemu: Mogłeś doświadczyć sporadycznych awarii klienta gry z powodu problemu w funkcji 'CDXTCImage::LoadHeaderFromMemory'. Funkcja ta nie sprawdzała, czy plik ma odpowiedni rozmiar przed próbą odczytu nagłówka DDS. W rezultacie, jeśli plik miał mniej niż 125 bajtów (wymagany rozmiar nagłówka DDS), funkcja próbowała odczytać dane spoza dostępnej pamięci. To prowadziło do nieoczekiwanych zachowania i potencjalnych awarii klienta. Plik 'fog.tga' miał jedynie 76 bajtów. Funkcja 'LoadHeaderFromMemory' zakładała, że zawsze ma do czynienia z plikami DDS o odpowiedniej długości, więc próbowała odczytać z tego pliku 125 bajtów, co powodowało odczyt danych spoza jego zakresu. Gdy funkcja napotykała koniec pliku wcześniej niż się spodziewała, mogło to prowadzić do awarii klienta. Implementacja 📂 Lokalizacja pliku: 'EterImageLib -> DXTCImage.cpp' 🔍 Szukaj Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto ♻️ Zamień 🔍 Szukaj ♻️ Zamień 🔍 Szukaj ➕Dodaj 🔍 Szukaj ♻️ Zamień 🔍 Szukaj ♻️ Zamień 🔍 Szukaj ➕Dodaj 🔍 Szukaj ➕Dodaj 🔍 Szukaj ♻️ Zamień 🔍 Szukaj ♻️ Zamień 📂 Lokalizacja pliku: 'EterImageLib -> DXTCImage.h' 🔍 Szukaj ♻️ Zamień 🔎Szukaj ♻️ Zamień 📂 Lokalizacja pliku: 'EterLib -> GrpImageTexture.cpp' 🔎Szukaj ♻️ Zamień
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto