diff options
| author | Sam Varshavchik | 2015-12-19 12:08:37 -0500 | 
|---|---|---|
| committer | Sam Varshavchik | 2015-12-19 12:08:37 -0500 | 
| commit | fc74b7bc645d74c9fc87fa63345b6c6840c73bca (patch) | |
| tree | 519885c20743c188918eb32e044ac2d7e609ab86 /maildir/maildircreate.c | |
| parent | 08727afd05a6a6f5daa7f1fb293be038d43c4ef8 (diff) | |
| download | courier-libs-fc74b7bc645d74c9fc87fa63345b6c6840c73bca.tar.bz2 | |
maildrop: implement FLAGS
Diffstat (limited to 'maildir/maildircreate.c')
| -rw-r--r-- | maildir/maildircreate.c | 23 | 
1 files changed, 23 insertions, 0 deletions
| diff --git a/maildir/maildircreate.c b/maildir/maildircreate.c index 5efc0af..b0c8e01 100644 --- a/maildir/maildircreate.c +++ b/maildir/maildircreate.c @@ -178,10 +178,26 @@ static int maildir_tmpcreate_fd_do(struct maildir_tmpcreate_info *info)  	if (info->newname)  		free(info->newname); +	info->newname=NULL; + +	if (info->curname) +		free(info->curname); +	info->curname=NULL;  	info->newname=malloc(strlen(info->tmpname)+strlen(ino_buf)+  			     strlen(dev_buf)+3); +	if (info->newname) +	{ +		info->curname=malloc(strlen(info->tmpname)+strlen(ino_buf)+ +				     strlen(dev_buf)+3); +		if (!info->curname) +		{ +			free(info->newname); +			info->newname=NULL; +		} +	} +  	if (!info->newname)  	{  		maildir_tmpcreate_free(info); @@ -209,6 +225,9 @@ static int maildir_tmpcreate_fd_do(struct maildir_tmpcreate_info *info)  	strcat(info->newname, hostname);  	strcat(info->newname, len_buf); +	strcpy(info->curname, info->newname); +	memcpy(info->curname + strlen(maildir)+1, "cur", 3); +  	return fd;  } @@ -221,6 +240,10 @@ void maildir_tmpcreate_free(struct maildir_tmpcreate_info *info)  	if (info->newname)  		free(info->newname);  	info->newname=NULL; + +	if (info->curname) +		free(info->curname); +	info->curname=NULL;  }  int maildir_movetmpnew(const char *tmpname, const char *newname) | 
