39013

39013



136


ROZDZIAŁ 18. SA PISY

Bezpiecznymi alternatywami do strepy i streat są też funkcje strlcpy oraz strlcat opracowana przez projekt 0|x*nBSD i dostępna do ściągnięcia: strlcpy, strlcat. strlcpv() działa podobnie do stmcpy: strlcpy (buf , argv[l], sizeof buf)jednak jest szybsza (nie wypełnia pustego miejsca zerami) i zawsze kończy napis uullcm (czego nie gwarantuje stmcpy). strlcat(dst, sre, size) działa natomiast jak strncat(dst, sre, size-1).

Do innycłi niebezpiecznych funkcji należy np. gets zamiast której należy używać fgets. Zawsze możemy też alokować napisy dynamicznie:

tfinclude <stdio.h> sinclude <string.h>

•include <atdlib.h>

int main(int arge, char *«argv) { char haslo.poprawne = 0; char *haslo;

if (arge!"2) {

fprintf(stderr, "użycie: Xs hasło", argv[0]); return EXIT_FAILURE;

>

hasło = malloc(strlen(argv[l]) + 1); /• +1 dla znaku nuli •/ if (!hasło) {

fputs("Za mało pamięci.\n", stderr); return EXIT_FAILURE;

>

strepy(hasło, argv[l]); if (Istrcmp(hasło, "poprawne")) { haslo.poprawne ■ 1;

>

if (!haslo.poprawne) {

fputs("Podałeś biedne hasło.\n", stderr); return EXIT_FAILURE;

>

puts("Witaj, wprowadziłeś poprawne hasło.");

free(haslo)

return EXIT_SUCCESS;

>

Nadużycia z udziałem ciągów formatujących

J«>dnak to nie koniec kłopotów z napisami. Wielu programistów, nieświadomych zagrożenia często używa tego typu konstrukcji:

iinclude <stdio.h>

int main (int arge, char *argv[])

{

printf (argv[l]);

)

Z punktu widzenia bezpieczeństwa jest to iKtrdzo poważny błąd programu, który może nieść ze solxj katastrofalne skutki! Prawidłowo napisany kisł |xnvinieu wyglądać następująco:



Wyszukiwarka

Podobne podstrony:
132 ROZDZIAŁ 18. SA PISY Warto zaznaczyć, że znak nowej linii (’

134 ROZDZIAŁ 18. SA PISY int main(void) { char napisl[80] - "hello char *napis2 ■
klsti553 583 ROZDZIAŁ 18. SPRZĘTY gach są używane na znacznej przestrzeni Słowiańszczyzny bałkańskie
HMF teoria autorska 186 Rozdział 18: Teoria autorska 18.4. Rozumienie autorstwa By wrócić do teoret
rozdział 1 (2) 18    Roman Niestrój 1 podarki rynkowej: Zanim więc przejdziemy do oma
Rozdział 18 Przedstawione wyniki oznaczeń badanych próbek wód środowiskowych są w dobrej zgodności z
Rozdział 18 do specyficznych zastosowań i nie mogą być zaadaptowane do żądań klientów. Tylko kilka j
Rozdział 18 Rys.2. Zestawy pomiarowy do testowania czujników chemicznych: a) układ do pomiarów w ukł
Moduł Dane do sprawozdań MZ/GUS BU Wiersze 04, 08 i 18 są sumami wartości z wierszy wskazanych na dr
rozdział 6 (18) 174 Podstawy marketingu - rynkowych, zmierzających do poznania reakcji i potencjalny
201411262349 CELE FUNKCJONOWANIA PRZEDSIĘBIORSTWA ALTERNATYWNY - BEZPIECZNE DRŻENIE DO STOPY W
P1130786 [Oryginalna Rozdzielczość] I przemieszcza się od jednego brzegu do drugiego. Brzegi rzeki s

więcej podobnych podstron