aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/bio.c8
-rw-r--r--src/util/test_bio.c2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/util/bio.c b/src/util/bio.c
index 860e9e63e..1143e89de 100644
--- a/src/util/bio.c
+++ b/src/util/bio.c
@@ -58,6 +58,8 @@ GNUNET_BIO_read_open (const char *fn)
58 58
59 fd = GNUNET_DISK_file_open (fn, GNUNET_DISK_OPEN_READ, 59 fd = GNUNET_DISK_file_open (fn, GNUNET_DISK_OPEN_READ,
60 GNUNET_DISK_PERM_NONE); 60 GNUNET_DISK_PERM_NONE);
61 if (NULL == fd)
62 return NULL;
61 h = GNUNET_malloc (sizeof (struct GNUNET_BIO_ReadHandle) + BIO_BUFFER_SIZE); 63 h = GNUNET_malloc (sizeof (struct GNUNET_BIO_ReadHandle) + BIO_BUFFER_SIZE);
62 h->buffer = (char *) &h[1]; 64 h->buffer = (char *) &h[1];
63 h->size = BIO_BUFFER_SIZE; 65 h->size = BIO_BUFFER_SIZE;
@@ -176,15 +178,16 @@ GNUNET_BIO_read_string (struct GNUNET_BIO_ReadHandle *h,
176 return GNUNET_SYSERR; 178 return GNUNET_SYSERR;
177 } 179 }
178 buf = GNUNET_malloc (big); 180 buf = GNUNET_malloc (big);
181 *result = buf;
179 buf[--big] = '\0'; 182 buf[--big] = '\0';
180 if (big == 0) 183 if (big == 0)
181 return GNUNET_OK; 184 return GNUNET_OK;
182 if (GNUNET_OK != GNUNET_BIO_read (h, what, buf, big)) 185 if (GNUNET_OK != GNUNET_BIO_read (h, what, buf, big))
183 { 186 {
184 GNUNET_free (buf); 187 GNUNET_free (buf);
188 *result = NULL;
185 return GNUNET_SYSERR; 189 return GNUNET_SYSERR;
186 } 190 }
187 *result = buf;
188 return GNUNET_OK; 191 return GNUNET_OK;
189} 192}
190 193
@@ -308,6 +311,8 @@ GNUNET_BIO_write_open (const char *fn)
308 GNUNET_DISK_OPEN_CREATE, 311 GNUNET_DISK_OPEN_CREATE,
309 GNUNET_DISK_PERM_USER_READ | 312 GNUNET_DISK_PERM_USER_READ |
310 GNUNET_DISK_PERM_USER_WRITE); 313 GNUNET_DISK_PERM_USER_WRITE);
314 if (NULL == fd)
315 return NULL;
311 h = 316 h =
312 GNUNET_malloc (sizeof (struct GNUNET_BIO_WriteHandle) + BIO_BUFFER_SIZE); 317 GNUNET_malloc (sizeof (struct GNUNET_BIO_WriteHandle) + BIO_BUFFER_SIZE);
313 h->buffer = (char *) &h[1]; 318 h->buffer = (char *) &h[1];
@@ -390,6 +395,7 @@ GNUNET_BIO_write (struct GNUNET_BIO_WriteHandle *h,
390 h->have = 0; 395 h->have = 0;
391 } 396 }
392 while (pos < n); /* should always be true */ 397 while (pos < n); /* should always be true */
398 GNUNET_break (0);
393 return GNUNET_OK; 399 return GNUNET_OK;
394} 400}
395 401
diff --git a/src/util/test_bio.c b/src/util/test_bio.c
index d2eb4ae21..fbcfa02ac 100644
--- a/src/util/test_bio.c
+++ b/src/util/test_bio.c
@@ -123,9 +123,11 @@ main (int argc, char *argv[])
123 GNUNET_assert (GNUNET_OK == GNUNET_BIO_read_int64 (fileR, &testNum)); 123 GNUNET_assert (GNUNET_OK == GNUNET_BIO_read_int64 (fileR, &testNum));
124 fileR2 = GNUNET_BIO_read_open (fileName2); 124 fileR2 = GNUNET_BIO_read_open (fileName2);
125 GNUNET_assert (NULL != fileR2); 125 GNUNET_assert (NULL != fileR2);
126 readResultString = (char*) "not null";
126 GNUNET_assert (GNUNET_SYSERR == 127 GNUNET_assert (GNUNET_SYSERR ==
127 GNUNET_BIO_read_string (fileR2, "Read string error", 128 GNUNET_BIO_read_string (fileR2, "Read string error",
128 &readResultString, 200)); 129 &readResultString, 200));
130 GNUNET_assert (NULL == readResultString);
129 fileR3 = GNUNET_BIO_read_open (fileName3); 131 fileR3 = GNUNET_BIO_read_open (fileName3);
130 GNUNET_assert (NULL != fileR3); 132 GNUNET_assert (NULL != fileR3);
131 GNUNET_assert (GNUNET_SYSERR == 133 GNUNET_assert (GNUNET_SYSERR ==