Szerk:
configure
Debian Jessie: checking for memset_s support... no -- optimális
AIX 6.1: checking for memset_s support... yes -- szuboptimális
De ha már a configure megatlálja, akkor a tulajdonképpeni fordítás miért nem?
Sőt, még rsize_t is hiányzik a lelki békéjéhez:
crypto/apr_crypto.c:160:9: warning: implicit declaration of function 'memset_s' [-Wimplicit-function-declaration]
return memset_s(buffer, (rsize_t)size, 0, (rsize_t)size);
^
crypto/apr_crypto.c:160:34: error: 'rsize_t' undeclared (first use in this function)
return memset_s(buffer, (rsize_t)size, 0, (rsize_t)size);
Nem tudom, mondtam-e már, hogy egyes kollégák inkább valami mással kellene játszadozzanak...
Szerk: a configure-nál __STDC_WANT_LIB_EXT1__ -et definiálja (amit egyébként az AIX nem is vizsgál), fordításkor semmit
Szerk: az akadályozó játékosok egyike a gcc, ami 'include-fixed' jelszóval saját string.h-t hoz, amiben nincs memset_s. Az a biztos, ha törlöm a francba.
Szerk: illetve a gcc saját telepítesekori állapotból csinálta meg az include-fixed string.h-t, arról nem ő tehet, ha közben fejlődött alatta az AIX...
- NevemTeve blogja
- A hozzászóláshoz be kell jelentkezni
- 1267 megtekintés
Hozzászólások
A memset nem azt csinálja, amit várnánk tőle, ezért kitalálták, hogy legyen egy memset_s, ami viszont eskü tényleg azt csinálja :-).
- A hozzászóláshoz be kell jelentkezni
a memset pont azt csinalja amit varnak tole, ezert szuletett egy memset_s, ami ugyan azt csinalja, de ugy hogy amit nem varunk a memset-tol :D
(egyébként C11-től van, a memset (_s mint secure) verzioja. Egyetlen parameterrel van tobb neki, ami a dst memoria terulet merete, igy nem lehet tulcsordulast eloidezni vele)
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Én ezt olvastam, ez hülyeség? https://news.ycombinator.com/item?id=9708743
moyix 759 days ago | parent | favorite | on: Being Sneaky in C
C11 actually adds the memset_s function, which is guaranteed by the language spec not to be optimized away:
> memset may be optimized away (under the as-if rules) if the object modified by this function is not accessed again for the rest of its lifetime. For that reason, this function cannot be used to scrub memory (e.g. to fill an array that stored a password with zeroes). This optimization is prohibited for memset_s: it is guaranteed to perform the memory write.
- A hozzászóláshoz be kell jelentkezni
Az optimalizálós rémálomról ne is beszéljünk... Illetve már beszéltünk is, itt: https://hup.hu/node/154068
- A hozzászóláshoz be kell jelentkezni