mailio icon indicating copy to clipboard operation
mailio copied to clipboard

segmentation fault in imap fetch function

Open yjm6560 opened this issue 2 years ago • 0 comments

https://github.com/karastojko/mailio/blob/75db981761cdc1fbf47a48f2f8f45fa283ed3781/src/imap.cpp#L341-L347

imap server doesn't send untagged response if uid or message-sequence number requested in FETCH command doesn't exist. it sends just only tagged response with OK status in that situation.

msg = std::move(found_messages.begin()->second); 

So above code line can generate segmentation fault since it trys to access found_messages.begin() even though there is no element in it.

How about moving the logic which checks if the uid data exists to following handling tagged response? https://github.com/karastojko/mailio/blob/75db981761cdc1fbf47a48f2f8f45fa283ed3781/src/imap.cpp#L445-L460

Of course, it is good to check if found_messages is empty before calling begin()

yjm6560 avatar Aug 30 '23 04:08 yjm6560