Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
gnats
gnats-4.1.0.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnats-4.1.0.diff of Package gnats
--- gnats/Makefile.in +++ gnats/Makefile.in @@ -391,7 +391,7 @@ $(INSTALL_SCRIPT) edit-pr $(DESTDIR)$(bindir)/edit-pr $(INSTALL_SCRIPT) diff-prs $(DESTDIR)$(libexecdir)/gnats/diff-prs $(INSTALL_SCRIPT) mail-agent $(DESTDIR)$(libexecdir)/gnats/mail-agent - $(INSTALL_PROGRAM) file-pr $(DESTDIR)$(libexecdir)/gnats/file-pr + $(INSTALL_SCRIPT) file-pr $(DESTDIR)$(libexecdir)/gnats/file-pr $(INSTALL_PROGRAM) pr-age $(DESTDIR)$(libexecdir)/gnats/pr-age $(INSTALL_PROGRAM) pr-edit $(DESTDIR)$(libexecdir)/gnats/pr-edit @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \ --- gnats/client.c +++ gnats/client.c @@ -145,7 +145,7 @@ size_t linelen = strlen (recvline); int i; - if (linelen > 0) + if (linelen > 1) { if (recvline[linelen - 2] == '\r') { @@ -194,7 +194,7 @@ size_t linelen = strlen (recvline); int i; - if (linelen > 0) + if (linelen > 1) { if (recvline[linelen - 2] == '\r') { @@ -221,6 +221,7 @@ prList = &((*prList)->next); } } + free (recvline); } } @@ -244,7 +245,7 @@ else { int i; - if (recvline[1]) + if (recvline[0] && recvline[1]) { size_t linelen = strlen (recvline) - 2; if (recvline[linelen] == '\r') @@ -614,7 +616,8 @@ authenticator, but a constant should be nearly as secure. */ #define CKSUM 0x10291966 - strcpy (hname, host->h_name); + strncpy (hname, host->h_name, sizeof (hname)); + hname[sizeof (hname) - 1] = 0; realm = krb_realmofhost (hname); --- gnats/edit-pr.sh +++ gnats/edit-pr.sh @@ -113,14 +113,6 @@ PR_ADDR="$QUERY_PR --responsible-address" PR_EDIT="$LIBEXECDIR/gnats/pr-edit $GNATS_HOST $GNATS_PORT $EDIT_USER $EDIT_PASSWD $GNATS_DB" -# These traps take care of deleting all the /tmp files -trap 'rm -f $new.old $change_msg $fixfil' 0 -# Don't delete $new on error signals -trap 'if [ "$locked" != "" ]; then \ - $PR_EDIT --unlock $pr_id ; \ - locked= ; \ - fi' 1 2 3 13 15 - # find a user name if [ "$USER" != "" ]; then me=$USER @@ -138,15 +130,30 @@ full_me="$me" fi +# These traps take care of deleting all the /tmp files +trap 'rm -rf $newdir' 0 +# Don't delete $new on error signals +trap 'if [ "$locked" != "" ]; then \ + $PR_EDIT --unlock $pr_id ; \ + locked= ; \ + fi; exit 1' 1 2 3 13 15 + # new = temp file to use for editing -new="/tmp/ep$$" -newtmp="/tmp/ep$$.tp" -change_msg="/tmp/ep$$.ch" -fixfil="/tmp/ep$$.fx" +if type -p mktemp >/dev/null 2>&1; then + newdir=`mktemp -d /tmp/epXXXXXX` || exit 1 +else + newdir="/tmp/ep$$" + rm -rf $newdir + mkdir -m 700 $newdir || exit 1 +fi +new=$newdir/edit-pr +newtmp=$newdir/edit-pr.tp +change_msg=$newdir/edit-pr.ch +fixfil=$newdir/edit-pr.fx # lock the pr $debug_print "Locking $pr_id." -lock=`$PR_EDIT --lock=$full_me --process=$$ $pr_id 2>&1 > $new` +lock=`$PR_EDIT --lock="$full_me" --process=$$ $pr_id 2>&1 > $new` locked=t if [ "$lock" != "" ] ; then --- gnats/edit.c +++ gnats/edit.c @@ -924,7 +924,8 @@ } /* read the contents of the lock file */ - fgets (buf, sizeof (buf) - 1, fp); + if (fgets (buf, sizeof (buf) - 1, fp) == NULL) + buf[0] = 0; s = strchr (buf, '\n'); if (s != NULL) { --- gnats/gen-closed-date.c +++ gnats/gen-closed-date.c @@ -123,8 +123,12 @@ final1++; } to_len = final1 - to_start; + if (from_len >= sizeof (from)) + from_len = sizeof (from) - 1; strncpy (from, from_start, from_len); from[from_len] = '\0'; + if (to_len >= sizeof (from)) + to_len = sizeof (from) - 1; strncpy (to, to_start, to_len); to[to_len] = '\0'; final2 = final1; @@ -163,6 +167,8 @@ } c++; len = c - when_start; + if (len >= sizeof (when)) + len = sizeof (when) - 1; (void) strncpy (when, when_start, len); when[len] = '\0'; set_field (pr, CLOSED_DATE (pr->database), when, err); @@ -246,6 +252,12 @@ { PR *pr; + if (strlen (next->d_name) > 20) + { + fprintf (stderr, "%s%s: name too long\n", path, next->d_name); + continue; + } + p = path + len - 1; strcat (p, next->d_name); --- gnats/gen-index.c +++ gnats/gen-index.c @@ -161,6 +161,12 @@ PR *pr; char *p = path + len - 1; + if (strlen (next->d_name) > 20) + { + fprintf (stderr, "%s%s: name too long\n", path, next->d_name); + continue; + } + strcat (p, next->d_name); fp = fopen (path, "r"); --- gnats/mail-query.sh +++ gnats/mail-query.sh @@ -47,7 +47,15 @@ [ "$header" = "Subject" ] && args="$contents" done -mail=/tmp/query$$ +if type -p mktemp >/dev/null; then + mail=`mktemp /tmp/queryXXXXXX` || exit 1 +else + mail=/tmp/query$$ + rm -f $mail + set -C + > $mail || exit 1 + set +C +fi exec 3>&1 4>&2 > $mail 2>&1 --- send-pr/Makefile.in +++ send-pr/Makefile.in @@ -115,6 +115,7 @@ install-norm-arch-indep: install-norm-arch-dep: all + $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir)/ $(INSTALL_SCRIPT) send-pr $(DESTDIR)$(bindir)/send-pr $(INSTALL_SCRIPT) install-sid $(DESTDIR)$(bindir)/install-sid $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(man1dir)/ --- send-pr/send-pr.sh +++ send-pr/send-pr.sh @@ -125,6 +125,11 @@ fi REMOVE_TEMP="rm -f $TEMP $BAD $REF" +# Catch some signals. ($xs kludge needed by Sun /bin/sh) +xs=0 +trap 'rm -f $REF $TEMP $FIXFIL; exit $xs' 0 +trap 'echo "$COMMAND: Aborting ..."; rm -f $REF $TEMP $FIXFIL; xs=1; exit' 1 3 13 15 + # find a user name if [ "$LOGNAME" = "" ]; then if [ "$USER" != "" ]; then @@ -277,11 +282,6 @@ # So the template generation code finds it. DEFAULT_SUBMITTERID=${SUBMITTER} -# Catch some signals. ($xs kludge needed by Sun /bin/sh) -xs=0 -trap 'rm -f $REF $TEMP $FIXFIL; exit $xs' 0 -trap 'echo "$COMMAND: Aborting ..."; rm -f $REF $TEMP $FIXFIL; xs=1; exit' 1 3 13 15 - if [ "x$PRINT" = "xtrue" ]; then FROM="<FROM>" REPLYTO="<REPLYTO>"
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor