SORU
8 Temmuz 2015, ÇARŞAMBA


Neden tek bir bağımsız değişken (dönüşüm belirteçleri) itiraz ile, basit bir beşgen kullanmaktır.

Okuduğum bir kitapta, tek bir bağımsız değişken (dönüşüm belirteçleri) printf önerilmiyor yazıyor. Yerine bunu önerir

printf("Hello World!");

ile

puts("Hello World!");

ya

printf("%s", "Hello World!");

Biri printf("Hello World!"); yanlış olduğunu bana söyleyebilir mi? Güvenlik açıkları içeren kitapta şöyle yazılmıştır. Bu güvenlik açıkları nelerdir?

CEVAP
8 Temmuz 2015, ÇARŞAMBA


printf("Hello World!"); savunmasız IMHO ama bu göz önünde bulundurun:

const char *str;
...
printf(str);

Eğer str olur göstermek için bir dize içeren %s biçim belirteçleri, programınız olacak sergi tanımsız davranış (çoğunlukla kazası), oysa puts(str) sadece görüntü dizesi gibi.

Örnek:

printf("%s");   //undefined behaviour (mostly crash)
puts("%s");     // displays "%s"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bad Lip Reading

    Bad Lip Read

    22 Mart 2011
  • Dive In

    Dive In

    17 Temmuz 2013
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006