aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2008-02-15 23:07:29 +0000
committerMarcus Brinkmann <[email protected]>2008-02-15 23:07:29 +0000
commit8b834710797fa68c168b67df409a792af4752d88 (patch)
treef96f194b9ce3163cb9c0f7cbd87e359dc6d148ed
parentAdd item. (diff)
downloadgpgme-8b834710797fa68c168b67df409a792af4752d88.tar.gz
gpgme-8b834710797fa68c168b67df409a792af4752d88.zip
2008-02-15 Marcus Brinkmann <[email protected]>
* engine-gpgconf.c (gpgconf_read): Fix end-of-line handline.
-rw-r--r--gpgme/ChangeLog4
-rw-r--r--gpgme/engine-gpgconf.c10
2 files changed, 9 insertions, 5 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog
index 9ac1f61f..2a5c7191 100644
--- a/gpgme/ChangeLog
+++ b/gpgme/ChangeLog
@@ -1,3 +1,7 @@
+2008-02-15 Marcus Brinkmann <[email protected]>
+
+ * engine-gpgconf.c (gpgconf_read): Fix end-of-line handline.
+
2008-02-14 Werner Koch <[email protected]>
* w32-io.c (_gpgme_io_spawn): Add arg R_PID to return the pid.
diff --git a/gpgme/engine-gpgconf.c b/gpgme/engine-gpgconf.c
index 26cd45f4..ab03e9d7 100644
--- a/gpgme/engine-gpgconf.c
+++ b/gpgme/engine-gpgconf.c
@@ -232,24 +232,24 @@ gpgconf_read (void *engine, char *arg1, char *arg2,
nread = _gpgme_io_read (rp[0], &line[linelen], LINELENGTH - linelen - 1);
if (nread > 0)
{
- line[linelen + nread] = '\0';
linelen += nread;
+ line[linelen] = '\0';
while ((mark = strchr (line, '\n')))
{
char *eol = mark;
- if (eol > &line[0] && *eol == '\r')
+ if (eol > line && eol[-1] == '\r')
eol--;
*eol = '\0';
-
+
/* Got a full line. */
err = (*cb) (hook, line);
if (err)
break;
- linelen -= mark - line;
- memmove (line, eol + 1, linelen);
+ linelen -= mark + 1 - line;
+ memmove (line, mark + 1, linelen);
}
}
}