- Katılım
- 6 Mayıs 2022
- Konular
- 30
- Mesajlar
- 252
- Tepkime puanı
- 15
- M2 Yaşı
- 2 yıl 6 ay 28 gün
- Trophy Puan
- 18
- M2 Yang
- 5,054
Birçok sunucuda karşılaşılan bir güvenlik açığı, toplu item ayırma sistemini etkileyen while döngüsünün göz ardı edilmiş bir kontrolle sonsuz bir döngüye girebilmesidir.
Normalde, envanterdeki öğeleri belirli bir pozisyondan başka bir pozisyona taşımak için oyun arayüzünde pozitif bir rakam kullanılırken, bu kontrolün ihmal edilmesi sebebiyle manuel komutlar veya farklı yöntemler (script vb.) aracılığıyla pozitif bir rakam yerine 0 veya daha düşük bir değer gönderilerek bu işlemin gerçekleştirilmesi mümkündür.
Örnek komut: split_items 0 0 1
Örnek sorun: https://i.gyazo.com/6464b7d6047cf328419f186e31b8abea.mp4
Düzeltme şu şekilde yapılabilir;
server/cmd_general.cpp içerisinde aratılır
+
altına eklenilir;
Normalde, envanterdeki öğeleri belirli bir pozisyondan başka bir pozisyona taşımak için oyun arayüzünde pozitif bir rakam kullanılırken, bu kontrolün ihmal edilmesi sebebiyle manuel komutlar veya farklı yöntemler (script vb.) aracılığıyla pozitif bir rakam yerine 0 veya daha düşük bir değer gönderilerek bu işlemin gerçekleştirilmesi mümkündür.
Örnek komut: split_items 0 0 1
Örnek sorun: https://i.gyazo.com/6464b7d6047cf328419f186e31b8abea.mp4
Düzeltme şu şekilde yapılabilir;
server/cmd_general.cpp içerisinde aratılır
C++:
ACMD(do_split_items)
C++:
str_to_number(destCell, arg3);
altına eklenilir;
C++:
if (count <= 0)
return;