+++ /dev/null
-XHDR and XPAT were not checking the permissions the user has to read
-articles when using a message-ID. Now fixed, as well as calls to ARTclose().
-
-http://inn.eyrie.org/viewcvs/branches/2.4/nnrpd/article.c?r1=8004&r2=8003&pathrev=8004&view=patch
-
---- 2.4/nnrpd/article.c 2008/09/05 19:13:28 8003
-+++ 2.4/nnrpd/article.c 2008/09/06 08:49:55 8004
-@@ -688,6 +688,7 @@
- if (ac > 1)
- ARTnumber = tart;
- if ((msgid = GetHeader("Message-ID")) == NULL) {
-+ ARTclose();
- Reply("%s\r\n", ARTnoartingroup);
- return;
- }
-@@ -745,9 +746,9 @@
- if (!ARTopen(ARTnumber))
- continue;
- msgid = GetHeader("Message-ID");
-+ ARTclose();
- } while (msgid == NULL);
-
-- ARTclose();
- Reply("%d %d %s Article retrieved; request text separately.\r\n",
- NNTP_NOTHING_FOLLOWS_VAL, ARTnumber, msgid);
- }
-@@ -1008,6 +1009,12 @@
- Printf("%d No such article.\r\n", NNTP_DONTHAVEIT_VAL);
- break;
- }
-+ if (!PERMartok()) {
-+ ARTclose();
-+ Printf("%s\r\n", NOACCESS);
-+ break;
-+ }
-+
- Printf("%d %s matches follow (ID)\r\n", NNTP_HEAD_FOLLOWS_VAL,
- header);
- if ((text = GetHeader(header)) != NULL
-@@ -1047,8 +1054,8 @@
- SendIOb(buff, strlen(buff));
- SendIOb(p, strlen(p));
- SendIOb("\r\n", 2);
-- ARTclose();
- }
-+ ARTclose();
- }
- SendIOb(".\r\n", 3);
- PushIOb();