Skip to content

Commit fb61224

Browse files
authored
Merge pull request #141 from cofyc/fix
Fixes multiple certs issue
2 parents 100b339 + c7b9273 commit fb61224

File tree

4 files changed

+5
-3
lines changed

4 files changed

+5
-3
lines changed

dnscrypt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ find_cert(const struct context *c,
6666
if (dns_query_len <= DNSCRYPT_QUERY_HEADER_SIZE) {
6767
return NULL;
6868
}
69-
for (i = 0U; i < c->signed_certs_count; i++) {
69+
for (i = 0U; i < c->certs_count; i++) {
7070
if (memcmp(certs[i].magic_query, magic_query, DNSCRYPT_MAGIC_HEADER_LEN) == 0) {
7171
return &certs[i];
7272
}

dnscrypt.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ struct context {
149149
struct SignedCert *signed_certs;
150150
size_t signed_certs_count;
151151
dnsccert *certs;
152+
size_t certs_count;
152153
uint8_t provider_publickey[crypto_sign_ed25519_PUBLICKEYBYTES];
153154
uint8_t provider_secretkey[crypto_sign_ed25519_SECRETKEYBYTES];
154155
char *crypt_secretkey_file;

main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ filter_signed_certs(struct context *c)
231231
filtered_certs[j].version_minor[0] == c->signed_certs[i].version_minor[0] &&
232232
filtered_certs[j].version_minor[1] == c->signed_certs[i].version_minor[1]) {
233233
found = 1;
234-
if (filtered_certs[j].serial < c->signed_certs[i].serial) {
234+
if (ntohl(*(uint32_t *)filtered_certs[j].serial) < ntohl(*(uint32_t *)c->signed_certs[i].serial)) {
235235
filtered_certs[j] = c->signed_certs[i];
236236
}
237237
}
@@ -295,6 +295,7 @@ match_cert_to_keys(struct context *c) {
295295
size_t keypair_id, signed_cert_id, cert_id;
296296

297297
c->certs = sodium_allocarray(c->signed_certs_count, sizeof *c->certs);
298+
c->certs_count = c->signed_certs_count;
298299
cert_id = 0U;
299300

300301
for(keypair_id=0; keypair_id < c->keypairs_count; keypair_id++) {

version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
#ifndef VERSION_H
33
#define VERSION_H
44

5-
const char *the_version = "0.4.0-4.g9cf954e";
5+
const char *the_version = "0.4.0-5.g100b339";
66

77
#endif

0 commit comments

Comments
 (0)