mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
Windows lacks truncate(3).
Fix the new crypto tests, which used truncate(3).
This commit is contained in:
parent
5dbb0bdae9
commit
9abd7b8f90
@ -432,6 +432,7 @@ AC_CHECK_FUNCS(
|
|||||||
strtoull \
|
strtoull \
|
||||||
sysconf \
|
sysconf \
|
||||||
sysctl \
|
sysctl \
|
||||||
|
truncate \
|
||||||
uname \
|
uname \
|
||||||
usleep \
|
usleep \
|
||||||
vasprintf \
|
vasprintf \
|
||||||
|
@ -1322,6 +1322,29 @@ test_crypto_pk_base64(void *arg)
|
|||||||
tor_free(encoded);
|
tor_free(encoded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_TRUNCATE
|
||||||
|
#define do_truncate truncate
|
||||||
|
#else
|
||||||
|
static int
|
||||||
|
do_truncate(const char *fname, size_t len)
|
||||||
|
{
|
||||||
|
struct stat st;
|
||||||
|
char *bytes;
|
||||||
|
|
||||||
|
bytes = read_file_to_str(fname, RFTS_BIN, &st);
|
||||||
|
if (!bytes)
|
||||||
|
return -1;
|
||||||
|
/* This cast isn't so great, but it should be safe given the actual files
|
||||||
|
* and lengths we're using. */
|
||||||
|
if (st.st_size < (off_t)len)
|
||||||
|
len = MIN(len, (size_t)st.st_size);
|
||||||
|
|
||||||
|
int r = write_bytes_to_file(fname, bytes, len, 1);
|
||||||
|
tor_free(bytes);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Sanity check for crypto pk digests */
|
/** Sanity check for crypto pk digests */
|
||||||
static void
|
static void
|
||||||
test_crypto_digests(void *arg)
|
test_crypto_digests(void *arg)
|
||||||
@ -2664,8 +2687,8 @@ test_crypto_ed25519_storage(void *arg)
|
|||||||
tor_free(tag);
|
tor_free(tag);
|
||||||
|
|
||||||
/* whitebox test: truncated keys. */
|
/* whitebox test: truncated keys. */
|
||||||
tt_int_op(0, ==, truncate(fname_1, 40));
|
tt_int_op(0, ==, do_truncate(fname_1, 40));
|
||||||
tt_int_op(0, ==, truncate(fname_2, 40));
|
tt_int_op(0, ==, do_truncate(fname_2, 40));
|
||||||
tt_int_op(-1, OP_EQ, ed25519_pubkey_read_from_file(&pub, &tag, fname_2));
|
tt_int_op(-1, OP_EQ, ed25519_pubkey_read_from_file(&pub, &tag, fname_2));
|
||||||
tt_ptr_op(tag, OP_EQ, NULL);
|
tt_ptr_op(tag, OP_EQ, NULL);
|
||||||
tor_free(tag);
|
tor_free(tag);
|
||||||
|
Loading…
Reference in New Issue
Block a user