ebeveyn
06b4279e0a
işleme
69e593427a
@ -5,18 +5,23 @@
|
||||
|
||||
#define NTESTS 10
|
||||
|
||||
const unsigned char canary[8] = {0x01, 0x23, 0x45, 0x67,
|
||||
0x89, 0xAB, 0xCD, 0xEF};
|
||||
|
||||
/* allocate a bit more for all keys and messages and
|
||||
* make sure it is not touched by the implementations.
|
||||
*/
|
||||
static void write_canary(unsigned char *d) {
|
||||
*((uint64_t *)d) = 0x0123456789ABCDEF;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
d[i] = canary[i];
|
||||
}
|
||||
}
|
||||
|
||||
static int check_canary(const unsigned char *d) {
|
||||
if (*(uint64_t *)d != 0x0123456789ABCDEF) {
|
||||
return -1;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (d[i] != canary[i])
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -6,20 +6,23 @@
|
||||
#define NTESTS 15
|
||||
#define MLEN 32
|
||||
|
||||
typedef uint64_t unaligned_uint64_t __attribute__((aligned(1)));
|
||||
const unsigned char canary[8] = {0x01, 0x23, 0x45, 0x67,
|
||||
0x89, 0xAB, 0xCD, 0xEF};
|
||||
|
||||
/* allocate a bit more for all keys and messages and
|
||||
* make sure it is not touched by the implementations.
|
||||
*/
|
||||
static void write_canary(unsigned char *d) {
|
||||
*((unaligned_uint64_t *)d) = 0x0123456789ABCDEF;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
d[i] = canary[i];
|
||||
}
|
||||
}
|
||||
|
||||
static int check_canary(const unsigned char *d) {
|
||||
if (*(unaligned_uint64_t *)d != 0x0123456789ABCDEF) {
|
||||
return -1;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (d[i] != canary[i])
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Yükleniyor…
Yeni konuda referans
Bir kullanıcı engelle