commit
022bd69839
3 changed files with 14 additions and 6 deletions
1
binlog.c
1
binlog.c
|
@ -628,6 +628,7 @@ void replay_log_event (void) {
|
|||
struct chat *C = &_C->chat;
|
||||
if (C->title) { tfree_str (C->title); }
|
||||
C->title = fetch_str_dup ();
|
||||
if (C->print_title) { tfree_str (C->print_title); }
|
||||
C->print_title = create_print_name (C->id, C->title, 0, 0, 0);
|
||||
#ifdef USE_LUA
|
||||
lua_chat_update (C);
|
||||
|
|
|
@ -428,6 +428,12 @@ int process_respq_answer (struct connection *c, char *packet, int len) {
|
|||
return rpc_send_packet (c);
|
||||
}
|
||||
|
||||
int check_prime (BIGNUM *p) {
|
||||
int r = BN_is_prime (p, BN_prime_checks, 0, BN_ctx, 0);
|
||||
ensure (r >= 0);
|
||||
return r;
|
||||
}
|
||||
|
||||
int check_DH_params (BIGNUM *p, int g) {
|
||||
if (g < 2 || g > 7) { return -1; }
|
||||
BIGNUM t;
|
||||
|
@ -440,7 +446,7 @@ int check_DH_params (BIGNUM *p, int g) {
|
|||
int x = BN_get_word (&t);
|
||||
assert (x >= 0 && x < 4 * g);
|
||||
|
||||
BN_clear (&dh_g);
|
||||
BN_free (&dh_g);
|
||||
|
||||
switch (g) {
|
||||
case 2:
|
||||
|
@ -462,15 +468,15 @@ int check_DH_params (BIGNUM *p, int g) {
|
|||
break;
|
||||
}
|
||||
|
||||
if (!BN_is_prime (p, BN_prime_checks, 0, BN_ctx, 0)) { return -1; }
|
||||
if (!check_prime (p)) { return -1; }
|
||||
|
||||
BIGNUM b;
|
||||
BN_init (&b);
|
||||
ensure (BN_set_word (&b, 2));
|
||||
ensure (BN_div (&t, 0, p, &b, BN_ctx));
|
||||
if (!BN_is_prime (&t, BN_prime_checks, 0, BN_ctx, 0)) { return -1; }
|
||||
BN_clear (&b);
|
||||
BN_clear (&t);
|
||||
if (!check_prime (&t)) { return -1; }
|
||||
BN_free (&b);
|
||||
BN_free (&t);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1327,6 +1327,7 @@ void fetch_geo_message (struct message *M) {
|
|||
fetch_message_action (&M->action);
|
||||
} else {
|
||||
M->message = fetch_str_dup ();
|
||||
M->message_len = strlen (M->message);
|
||||
fetch_message_media (&M->media);
|
||||
}
|
||||
}
|
||||
|
@ -1691,7 +1692,7 @@ void free_message_action (struct message_action *M) {
|
|||
|
||||
void free_message (struct message *M) {
|
||||
if (!M->service) {
|
||||
if (M->message) { tfree_str (M->message); }
|
||||
if (M->message) { tfree (M->message, M->message_len + 1); }
|
||||
free_message_media (&M->media);
|
||||
} else {
|
||||
free_message_action (&M->action);
|
||||
|
|
Loading…
Add table
Reference in a new issue