diff --git a/src/lib-sieve/ext-envelope.c b/src/lib-sieve/ext-envelope.c index f39bd10ecc03613ca4d28a4bc2be60e1086b3b3b..0f45f5f4c202f462aea9e3f78bb326dee590acf5 100644 --- a/src/lib-sieve/ext-envelope.c +++ b/src/lib-sieve/ext-envelope.c @@ -408,7 +408,8 @@ static int sieve_envelope_address_list_next_string_item if ( addr.local_part != NULL ) { const char *addr_str = sieve_address_to_string(&addr); - *str_r = t_str_new_const(addr_str, strlen(addr_str)); + if (str_r != NULL) + *str_r = t_str_new_const(addr_str, strlen(addr_str)); } return 1; diff --git a/src/lib-sieve/sieve-address.c b/src/lib-sieve/sieve-address.c index 18e429d2f956f2d9a6132b2c893e06eb41259587..89eb4cca6bc147c489cd5a0c2fd06ccee9909635 100644 --- a/src/lib-sieve/sieve-address.c +++ b/src/lib-sieve/sieve-address.c @@ -144,7 +144,8 @@ static int sieve_header_address_list_next_string_item if ( addr.local_part != NULL ) { const char *addr_str = sieve_address_to_string(&addr); - *str_r = t_str_new_const(addr_str, strlen(addr_str)); + if ( str_r != NULL ) + *str_r = t_str_new_const(addr_str, strlen(addr_str)); } return 1; diff --git a/src/lib-sieve/sieve-validator.c b/src/lib-sieve/sieve-validator.c index 9763f6252b24f232abc77411cd5687c453319aa0..375c76875d0aaf7f79d4fffc96803c183972b82a 100644 --- a/src/lib-sieve/sieve-validator.c +++ b/src/lib-sieve/sieve-validator.c @@ -546,11 +546,13 @@ bool sieve_validator_extension_load struct sieve_validator_extension_reg *reg; if ( ext->global && (valdtr->flags & SIEVE_COMPILE_FLAG_NOGLOBAL) != 0 ) { - sieve_argument_validate_error(valdtr, ext_arg, - "%s %s: failed to load Sieve capability `%s': " - "its use is restricted to global scripts", - sieve_command_identifier(cmd), sieve_command_type_name(cmd), - sieve_extension_name(ext)); + if ( cmd != NULL && ext_arg != NULL ) { + sieve_argument_validate_error(valdtr, ext_arg, + "%s %s: failed to load Sieve capability `%s': " + "its use is restricted to global scripts", + sieve_command_identifier(cmd), sieve_command_type_name(cmd), + sieve_extension_name(ext)); + } return FALSE; } diff --git a/src/managesieve-login/client-authenticate.c b/src/managesieve-login/client-authenticate.c index 7ebdd41183048bb594dee9fa90644cb9ff50bc53..d426fc78aac54ea0e283cbbf534c99b4ea9ad75d 100644 --- a/src/managesieve-login/client-authenticate.c +++ b/src/managesieve-login/client-authenticate.c @@ -138,6 +138,8 @@ static int managesieve_client_auth_read_response uoff_t resp_size; int ret; + *error_r = NULL; + if ( i_stream_read(client->input) == -1 ) { /* disconnected */ client_destroy(client, "Disconnected"); @@ -161,7 +163,6 @@ static int managesieve_client_auth_read_response client_send_bye(client, error); client_destroy(client, t_strconcat ("Disconnected: parse error during auth: ", error, NULL)); - *error_r = NULL; } else { *error_r = error; } @@ -210,7 +211,6 @@ static int managesieve_client_auth_read_response if (str_len(client->auth_response) + size > LOGIN_MAX_AUTH_BUF_SIZE) { client_destroy(client, "Authentication response too large"); - *error_r = NULL; return -1; } @@ -228,7 +228,6 @@ static int managesieve_client_auth_read_response client_send_bye(client, error); client_destroy(client, t_strconcat ("Disconnected: parse error during auth: ", error, NULL)); - *error_r = NULL; } else { msieve_client->skip_line = TRUE; *error_r = t_strconcat diff --git a/src/testsuite/testsuite-objects.c b/src/testsuite/testsuite-objects.c index 8165c94383ddaceaa6219daae5acde9d0874bd17..fe6d588209470638b6b60e8eb798866dfb3b0caf 100644 --- a/src/testsuite/testsuite-objects.c +++ b/src/testsuite/testsuite-objects.c @@ -135,7 +135,7 @@ bool testsuite_object_read return FALSE; tobj->def = (const struct testsuite_object_def *) tobj->object.def; - + i_assert(tobj->def != NULL); return TRUE; } @@ -147,7 +147,7 @@ bool testsuite_object_read_member return FALSE; *member_id_r = -1; - if ( tobj->def != NULL && tobj->def->get_member_id != NULL ) { + if ( tobj->def->get_member_id != NULL ) { if ( !sieve_binary_read_code(sblock, address, member_id_r) ) return FALSE; } diff --git a/src/testsuite/testsuite.c b/src/testsuite/testsuite.c index ab2911a94d2e95dcea0b188f726032918157e10a..921256496dd38ed0755dfea2f286c0b2ea4bd151 100644 --- a/src/testsuite/testsuite.c +++ b/src/testsuite/testsuite.c @@ -215,6 +215,7 @@ int main(int argc, char **argv) if ( tracestream != NULL ) o_stream_unref(&tracestream); + testsuite_scriptenv = NULL; } else { testsuite_testcase_fail("failed to compile testcase script"); }