* This function is called by the main command loop.
*/
void imap_append(int num_parms, ConstStr *Params) {
- long literal_length;
+ long literal_length=0;
struct CtdlMessage *msg = NULL;
long new_msgnum = (-1L);
int ret = 0;
return;
}
- if ( (Params[num_parms-1].Key[0] != '{')
+ if ( !Params[num_parms-1].len || (Params[num_parms-1].Key[0] != '{')
|| (Params[num_parms-1].Key[Params[num_parms-1].len-1] != '}') ) {
IReply("BAD no message literal supplied");
return;
* }
*/
- literal_length = atol(&Params[num_parms-1].Key[1]);
+ if (Params[num_parms-1].len>1) {
+ literal_length = atol(&Params[num_parms-1].Key[1]);
+ }
if (literal_length < 1) {
IReply("BAD Message length must be at least 1.");
return;