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 @ExoCarossa. 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 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕Dodaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕Dodaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕Dodaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 📂 Lokalizacja pliku: 'EterImageLib -> DXTCImage.h' 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔎Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 📂 Lokalizacja pliku: 'EterLib -> GrpImageTexture.cpp' 🔎Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.