RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: [EMAIL PROTECTED]
Module: rpm Date: 17-May-2008 15:30:49
Branch: HEAD Handle: 2008051713304801
Modified files:
rpm CHANGES
rpm/rpmio argv.c
Log:
- jbj: fix: insure no access before buffer if fgets(3) returns NUL.
Summary:
Revision Changes Path
1.2346 +1 -0 rpm/CHANGES
1.15 +2 -1 rpm/rpmio/argv.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2345 -r1.2346 CHANGES
--- rpm/CHANGES 17 May 2008 13:14:45 -0000 1.2345
+++ rpm/CHANGES 17 May 2008 13:30:48 -0000 1.2346
@@ -1,5 +1,6 @@
5.1.0 -> 5.2a0:
+ - jbj: fix: insure no access before buffer if fgets(3) returns NUL.
- jbj: tevr: add missing level of ht indirection, free input strings.
- jbj: fix: --triggers segfault, don't depend on he->p.ptr = NULL after
headerGet() failed return.
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/argv.c
============================================================================
$ cvs diff -u -r1.14 -r1.15 argv.c
--- rpm/rpmio/argv.c 10 Mar 2008 04:46:19 -0000 1.14
+++ rpm/rpmio/argv.c 17 May 2008 13:30:49 -0000 1.15
@@ -276,7 +276,8 @@
return -2;
while (!rc && (b = fgets(buf, (int)sizeof(buf), fp)) != NULL) {
buf[sizeof(buf)-1] = '\0';
- be = b + strlen(buf) - 1;
+ be = b + strlen(buf);
+ if (be > b) be--;
while (strchr("\r\n", *be) != NULL)
*be-- = '\0';
rc = argvAdd(&av, b);
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [email protected]