Skip to content

Instantly share code, notes, and snippets.

@tony2001
Created November 20, 2013 12:46
Show Gist options
  • Save tony2001/7562578 to your computer and use it in GitHub Desktop.
Save tony2001/7562578 to your computer and use it in GitHub Desktop.
diff --git a/src/libangel_buf.c b/src/libangel_buf.c
index 2bf7a97..4bc3e01 100644
--- a/src/libangel_buf.c
+++ b/src/libangel_buf.c
@@ -175,7 +175,7 @@ void libangel_buf_discard_all(struct libangel_buf_chain_s *bc)
}
}
-int libangel_buf_enlarge(struct libangel_buf_chain_s *bc, struct libangel_buf_s *b, size_t more)
+struct libangel_buf_s *libangel_buf_enlarge(struct libangel_buf_chain_s *bc, struct libangel_buf_s *b, size_t more)
{
struct libangel_buf_s *old_b;
size_t in_offset, out_offset, new_buf_size;
@@ -188,7 +188,7 @@ int libangel_buf_enlarge(struct libangel_buf_chain_s *bc, struct libangel_buf_s
b = realloc(b, sizeof(struct libangel_buf_s) + new_buf_size);
if (!b) {
- return -1;
+ return NULL;
}
b->buf = b->in = b->out = (char *)b + sizeof(struct libangel_buf_s);
@@ -206,6 +206,6 @@ int libangel_buf_enlarge(struct libangel_buf_chain_s *bc, struct libangel_buf_s
if (bc->in == old_b) {
bc->in = b;
}
- return 0;
+ return b;
}
diff --git a/src/libangel_conn_inbuf.c b/src/libangel_conn_inbuf.c
index 0922a17..f00423e 100644
--- a/src/libangel_conn_inbuf.c
+++ b/src/libangel_conn_inbuf.c
@@ -327,7 +327,8 @@ retry_take:
}
/* enlarge your buffer! */
- if (0 > libangel_buf_enlarge(bc, b, more)) {
+ b = libangel_buf_enlarge(bc, b, more);
+ if (!b) {
inbuf->out_closed = 1;
inbuf->closed_with_errno = LIBANGEL_ERROR;
inbuf->setup.closed(c);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment