2005-03-24 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / assuan / assuan-buffer.c
index 59518f2..d9163b7 100644 (file)
@@ -32,7 +32,7 @@ writen (ASSUAN_CONTEXT ctx, const char *buffer, size_t length)
 {
   while (length)
     {
-      ssize_t nwritten = ctx->io->write (ctx, buffer, length);
+      ssize_t nwritten = ctx->io->writefnc (ctx, buffer, length);
       
       if (nwritten < 0)
         {
@@ -58,7 +58,7 @@ readline (ASSUAN_CONTEXT ctx, char *buf, size_t buflen,
   *r_nread = 0;
   while (nleft > 0)
     {
-      ssize_t n = ctx->io->read (ctx, buf, nleft);
+      ssize_t n = ctx->io->readfnc (ctx, buf, nleft);
 
       if (n < 0)
         {
@@ -238,6 +238,9 @@ assuan_write_line (ASSUAN_CONTEXT ctx, const char *line)
   s = strchr (line, '\n');
   len = s? (s-line) : strlen (line);
 
+  if (len > LINELENGTH - 2)
+    return ASSUAN_Line_Too_Long;
+
   /* fixme: we should do some kind of line buffering.  */
   if (ctx->log_fp)
     {