Hello community,
here is the log from the commit of package vacation
checked in at Tue Jan 9 17:55:47 CET 2007.
--------
--- vacation/vacation.changes 2006-08-25 15:59:08.000000000 +0200
+++ /mounts/work_src_done/STABLE/vacation/vacation.changes 2007-01-09 13:55:47.000000000 +0100
@@ -1,0 +2,7 @@
+Tue Jan 9 13:50:30 CET 2007 - werner@suse.de
+
+- Avoid illegal free()-call after reading db (#232502)
+- Make comment about option -F more clear (#231471)
+- Add noreply, board, and info to ignore list
+
+-------------------------------------------------------------------
Old:
----
vacation-1.2.6.1.db.dif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vacation.spec ++++++
--- /var/tmp/diff_new_pack.Mq5262/_old 2007-01-09 17:55:39.000000000 +0100
+++ /var/tmp/diff_new_pack.Mq5262/_new 2007-01-09 17:55:39.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package vacation (Version 1.2.6.2)
#
-# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
@@ -11,20 +11,15 @@
# norootforbuild
Name: vacation
-License: GPL
+License: GNU General Public License (GPL)
Group: Productivity/Networking/Email/Utilities
Autoreqprov: on
Version: 1.2.6.2
-Release: 1
+Release: 22
Summary: A way to automatically reply to incoming e-mail
Source: vacation-%{version}.tar.bz2
Patch: vacation-%{version}.dif
Patch1: vacation-1.2.6.1.multiple-vacationmsg_files.dif
-# Not used but an option for geting it work without
-# using -m32 on 64bit and also on big endiany systems
-# Problem: it breaks olf vacation programs using gdbm
-# and it requires db1 (to be independent from db version)
-Patch2: vacation-1.2.6.1.db.dif
Patch3: vacation-1.2.6.1.strip.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -80,6 +75,10 @@
%{_mandir}/man5/forward.5.gz
%changelog -n vacation
+* Tue Jan 09 2007 - werner@suse.de
+- Avoid illegal free()-call after reading db (#232502)
+- Make comment about option -F more clear (#231471)
+- Add noreply, board, and info to ignore list
* Fri Aug 25 2006 - werner@suse.de
- Update to version 1.2.6.2 which includes the bulk fix
* Fri May 26 2006 - schwab@suse.de
@@ -136,13 +135,13 @@
* Tue Jan 11 2000 - werner@suse.de
- New version 1.2.1
* with bug fix (no string case compare for mail addresses)
-- Fix CFLAGS so it will work on PPC
+ - Fix CFLAGS so it will work on PPC
* Sun Jan 02 2000 - kukuk@suse.de
- Fix CFLAGS so it will work on every architecture
* Wed Dec 22 1999 - werner@suse.de
- new version 1.2.0
-- install vaclook
-- create and install vaclook.man
+ - install vaclook
+ - create and install vaclook.man
* Sat Nov 27 1999 - kukuk@suse.de
- Use RPM_OPT_FLAGS
* Mon Nov 01 1999 - kukuk@suse.de
++++++ vacation-1.2.6.2.dif ++++++
--- /var/tmp/diff_new_pack.Mq5262/_old 2007-01-09 17:55:39.000000000 +0100
+++ /var/tmp/diff_new_pack.Mq5262/_new 2007-01-09 17:55:39.000000000 +0100
@@ -32,7 +32,7 @@
VERSION = 1
--- vacation.c
-+++ vacation.c 2006-08-25 15:39:06.000000000 +0200
++++ vacation.c 2007-01-09 12:27:03.000000000 +0000
@@ -69,6 +69,7 @@ static char rcsid[] __attribute__ ((unus
#include
@@ -125,7 +125,7 @@
case '?':
default:
usage();
-@@ -155,38 +171,114 @@ int main(int argc, char **argv)
+@@ -155,38 +171,120 @@ int main(int argc, char **argv)
}
argc -= optind;
argv += optind;
@@ -187,7 +187,7 @@
+ }
+ }
+ } else if (lflag)
-+ flags = 0;
++ flags = GDBM_READER|GDBM_NOLOCK;
+ else
+ flags = GDBM_WRITER;
+
@@ -219,37 +219,43 @@
+ }
+
+ if (lflag) {
-+ datum key = gdbm_firstkey (db);
-+ while (key.dptr) {
-+ datum next = gdbm_nextkey (db, key);
-+ datum data = gdbm_fetch(db, key);
-+
-+ if (key.dptr != NULL && data.dptr != NULL) {
-+ time_t was;
-+
-+ if (data.dsize == (sizeof(was) >> 1)) {
-+ /* We read on 64bit system 32bit time_t input */
-+ int32_t in;
-+
-+ bzero(&was, sizeof(was));
-+ bcopy(data.dptr, &in, sizeof(in));
-+ was = (time_t)in;
++ datum key, next = gdbm_firstkey (db);
+
-+ } else
-+ bcopy(data.dptr, &was, sizeof(was));
++ while (next.dptr) {
++ key = next;
++ next = gdbm_nextkey(db, key);
++
++ if (key.dptr) {
++ datum data = gdbm_fetch(db, key);
++
++ if (data.dptr) {
++ time_t was;
+
-+ key.dptr[key.dsize] = 0;
-+ printf("%-36s %.36s", key.dptr, ctime(&was));
++ if (data.dsize == (sizeof(was) >> 1)) {
++ /* We read on 64bit system 32bit time_t input */
++ int32_t in;
++
++ bzero(&was, sizeof(was));
++ bcopy(data.dptr, &in, sizeof(in));
++ was = (time_t)in;
++ } else
++ bcopy(data.dptr, &was, sizeof(was));
++
++ printf("%-36.*s %.36s", key.dsize, key.dptr, ctime(&was));
++ free (data.dptr);
++ }
++
++ free (key.dptr);
+ }
+
-+ key = next;
+ }
++
+ (void) gdbm_close(db);
+ exit(0);
}
if (interval != -1)
-@@ -196,15 +288,19 @@ int main(int argc, char **argv)
+@@ -196,15 +294,19 @@ int main(int argc, char **argv)
(void) gdbm_close(db);
exit(0);
}
@@ -272,7 +278,7 @@
cur->name = pw->pw_name;
cur->next = names;
names = cur;
-@@ -218,8 +314,10 @@ int main(int argc, char **argv)
+@@ -218,8 +320,10 @@ int main(int argc, char **argv)
(void) gdbm_close(db);
if( vdomain){ /* add virtual domain to username */
if( !(vusername = (char *)malloc(MAXLINE))) {
@@ -285,7 +291,7 @@
}
(void) strcpy( vusername, pw->pw_name);
strcat( vusername, "@");
-@@ -231,10 +329,17 @@ int main(int argc, char **argv)
+@@ -231,10 +335,17 @@ int main(int argc, char **argv)
}
} else
(void) gdbm_close(db);
@@ -303,7 +309,7 @@
/*
* readheaders --
* read mail headers
-@@ -246,8 +351,6 @@ void readheaders(void)
+@@ -246,8 +357,6 @@ void readheaders(void)
int tome, cont;
char buf[MAXLINE];
char uucpfrom[MAXLINE];
@@ -312,7 +318,7 @@
cont = tome = 0;
while (fgets(buf, sizeof(buf), stdin) && *buf != '\n')
-@@ -292,7 +395,7 @@ void readheaders(void)
+@@ -292,7 +401,7 @@ void readheaders(void)
*p = '\0';
}
else
@@ -321,7 +327,7 @@
if ((p = rindex(uucpfrom, '!')))
strcat(from, p+1);
else
-@@ -303,7 +406,7 @@ void readheaders(void)
+@@ -303,7 +412,7 @@ void readheaders(void)
printd (logline);
#endif
if (junkmail())
@@ -330,7 +336,7 @@
break;
case 'R': /* "Reply-To: " */
cont = 0;
-@@ -318,7 +421,7 @@ void readheaders(void)
+@@ -318,7 +427,7 @@ void readheaders(void)
printd (logline);
#endif
if (junkmail())
@@ -339,7 +345,7 @@
}
break;
case 'S': /* "Subject" */
-@@ -332,7 +435,7 @@ void readheaders(void)
+@@ -332,7 +441,7 @@ void readheaders(void)
printd (logline);
#endif
if (junkmail())
@@ -348,7 +354,7 @@
}
break;
case 'P': /* "Precedence:" */
-@@ -348,7 +451,12 @@ void readheaders(void)
+@@ -348,7 +457,12 @@ void readheaders(void)
if (!strncasecmp(p, "junk", 4) ||
!strncasecmp(p, "list", 4) ||
!strncasecmp(p, "bulk", 4))
@@ -362,7 +368,7 @@
break;
case 'C': /* "Cc:" */
if (strncasecmp(buf, "Cc:", 3))
-@@ -368,12 +476,15 @@ void readheaders(void)
+@@ -368,12 +482,15 @@ void readheaders(void)
findme:
for (cur = names; !tome && cur; cur = cur->next)
tome += nsearch(cur->name, buf);
@@ -381,17 +387,18 @@
}
if (rflag && (*replyto != 0x0))
strcpy (from, replyto);
-@@ -418,7 +529,8 @@ int junkmail(void)
+@@ -418,7 +535,9 @@ int junkmail(void)
{"List-Owner", 10}, {"List-Archive", 12},
{"-request", 8}, {"postmaster", 10}, {"uucp", 4},
{"mailer-daemon", 13}, {"mailer", 6}, {"-relay", 6},
- {"-activists", 10}, {"-programmers", 12}, {NULL, 0},
+ {"-activists", 10}, {"-programmers", 12}, {"bugzilla-daemon", 15},
++ {"noreply", 7}, {"board", 5}, {"info", 4},
+ {NULL, 0}
};
register struct ignore *cur;
register int len;
-@@ -515,6 +627,7 @@ void setreply(void)
+@@ -515,6 +634,7 @@ void setreply(void)
/*
* sendmessage --
* exec sendmail to send the vacation file to sender
@@ -399,7 +406,7 @@
*/
void
sendmessage(char *myname, char *myrealname)
-@@ -526,12 +639,16 @@ sendmessage(char *myname, char *myrealna
+@@ -526,12 +646,16 @@ sendmessage(char *myname, char *myrealna
char buf[MAXLINE];
char line[MAXLINE];
@@ -419,7 +426,7 @@
if (index(myrealname, '(') || index(myrealname, ')')){
*buf='\"'; /* put " around realnames with () */
(void) strcpy(buf+1, myrealname);
-@@ -547,15 +664,18 @@ sendmessage(char *myname, char *myrealna
+@@ -547,15 +671,18 @@ sendmessage(char *myname, char *myrealna
mfp = fopen(VMSG, "r");
if (mfp == NULL) {
syslog(LOG_NOTICE, "vacation: no ~%s/%s file.\n", myname, VMSG);
@@ -438,7 +445,7 @@
exit(1);
}
if (i == 0) {
-@@ -563,14 +683,15 @@ sendmessage(char *myname, char *myrealna
+@@ -563,14 +690,15 @@ sendmessage(char *myname, char *myrealna
close(pvect[0]);
close(pvect[1]);
fclose(mfp);
@@ -456,7 +463,7 @@
fprintf(sfp,"Precedence: bulk\n");
fprintf(sfp, "To: %s\n", from);
while (fgets(buf, sizeof buf, mfp)) {
-@@ -606,7 +727,7 @@ sendmessage(char *myname, char *myrealna
+@@ -606,7 +734,7 @@ sendmessage(char *myname, char *myrealna
void usage(void)
{
@@ -465,7 +472,7 @@
puts ("or: vacation [ -j ] [ -a alias ] [ -h hostname ] [ -tN ] [ -r ] login");
exit(1);
}
-@@ -616,7 +737,7 @@ void initialize (char *path, char *mynam
+@@ -616,7 +744,7 @@ void initialize (char *path, char *mynam
{
char *editor;
char ebuf[PATH_MAX];
@@ -475,7 +482,7 @@
FILE *oldmessage;
FILE *forward;
--- vacation.man
-+++ vacation.man 2006-08-25 15:36:57.000000000 +0200
++++ vacation.man 2007-01-09 12:38:34.000000000 +0000
@@ -25,7 +25,9 @@ vacation \- reply to mail automatically
.SH SYNOPSIS
.B vacation
@@ -495,7 +502,7 @@
.SH DESCRIPTION
.IX vacation "" "\fLvacation\fR \(em automatic mail replies"
.LP
-@@ -155,13 +158,37 @@ senders is made case-independant.
+@@ -155,13 +158,45 @@ senders is made case-independant.
.SH OPTIONS
.TP
.B \-I
@@ -517,6 +524,14 @@
+even if the
+.B $\s-1HOME
+directory is identified as a NFS file system.
++Please note that the used data base is not portable
++between 32bit and 64bit architectures and also not
++portable between little and big endianess architectures
++even same bit-wide is used for. Therefore the
++initial creation of the
++.B \&.vacation.db
++should always happen on the server used for receiving
++mails for the specific user.
+.TP
+.B \-l
+List the content of the vacation database file
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org