From 129be11fe3496310fe27034977dc642e49af559c Mon Sep 17 00:00:00 2001
From: ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>
Date: Thu, 18 Aug 2005 19:06:13 +0000
Subject: don't delete local post while cancel message

git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3063 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
---
 innbbsd/nocem.h           |  2 +-
 innbbsd/receive_article.c | 10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

(limited to 'innbbsd')

diff --git a/innbbsd/nocem.h b/innbbsd/nocem.h
index de5b2d4d..18a4c5e9 100644
--- a/innbbsd/nocem.h
+++ b/innbbsd/nocem.h
@@ -52,6 +52,6 @@ extern char COUNT[];
 extern char THRESHOLD[];
 extern char KEYID[];
 extern char SPAMMID_NOW[];
-extern char SPAMMID[][];
+extern char SPAMMID[MAXSPAMMID][STRLEN];
 
 #endif /* NOCEM_H */
diff --git a/innbbsd/receive_article.c b/innbbsd/receive_article.c
index b9672edd..33831d18 100644
--- a/innbbsd/receive_article.c
+++ b/innbbsd/receive_article.c
@@ -778,8 +778,11 @@ post_article(homepath, userid, board, writebody, pathname, firstpath)
 #else
 
     strcpy(header.filename, name);
-    if (userid[IDLEN])
-	strcpy(&userid[IDLEN], ".");
+    if (userid[IDLEN-1])
+    {
+	userid[IDLEN-1] = '.';
+	userid[IDLEN] = '\0';
+    }	
     strcpy(header.owner, userid);
     strncpy(header.title, subject, TTLEN);
     header.filemode |= FILE_MULTI;
@@ -988,7 +991,8 @@ cancel_article(homepath, board, file)
     while (read(fd, &header, size) == size) {
 	if (strcmp(file, header.filename) == 0) {
 	    if ((header.filemode & FILE_MARKED)
-	     || (header.filemode & FILE_DIGEST) || (header.owner[0] == '-'))
+	     || (header.filemode & FILE_DIGEST) || (header.owner[0] == '-')
+	     || !strchr(header.owner,'.'))
 		break;
 	    delete_record(dirname, sizeof(fileheader_t), lseek(fd, 0, SEEK_CUR) / size);
 	    cancelpost(&header, board);
-- 
cgit v1.2.3