diff options
Diffstat (limited to 'innbbsd/receive_article.c')
-rw-r--r-- | innbbsd/receive_article.c | 10 |
1 files changed, 7 insertions, 3 deletions
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); |