Merge pull request #483 from link2xt/dc_msg_exists_safe

Make dc_msg_exists safe and rusty
This commit is contained in:
Alexander Krotov
2019-09-10 15:15:33 +03:00
committed by GitHub
2 changed files with 9 additions and 13 deletions

View File

@@ -156,9 +156,7 @@ impl Job {
/* if there is a msg-id and it does not exist in the db, cancel sending.
this happends if dc_delete_msgs() was called
before the generated mime was sent out */
if 0 != self.foreign_id
&& 0 == unsafe { dc_msg_exists(context, self.foreign_id) }
{
if 0 != self.foreign_id && !dc_msg_exists(context, self.foreign_id) {
warn!(
context,
0, "Message {} for job {} does not exist", self.foreign_id, self.job_id,

View File

@@ -1032,25 +1032,23 @@ The value is also used for CC:-summaries */
// Context functions to work with messages
pub unsafe fn dc_msg_exists(context: &Context, msg_id: u32) -> libc::c_int {
if msg_id <= 9 {
return 0;
pub fn dc_msg_exists(context: &Context, msg_id: u32) -> bool {
if msg_id <= DC_CHAT_ID_LAST_SPECIAL {
return false;
}
let chat_id: Option<i32> = context.sql.query_row_col(
let chat_id: Option<u32> = context.sql.query_row_col(
context,
"SELECT chat_id FROM msgs WHERE id=?;",
params![msg_id as i32],
params![msg_id],
0,
);
if let Some(chat_id) = chat_id {
if chat_id != 3 {
return 1;
}
chat_id != DC_CHAT_ID_TRASH
} else {
false
}
0
}
pub fn dc_update_msg_move_state(