aboutsummaryrefslogtreecommitdiff
path: root/net/openradius
diff options
context:
space:
mode:
authorKirill Ponomarev <krion@FreeBSD.org>2005-09-08 08:21:43 +0000
committerKirill Ponomarev <krion@FreeBSD.org>2005-09-08 08:21:43 +0000
commite71bb0a17184e283f26aa17e7572600190964617 (patch)
tree8f3fcfaeb419051a1c3b07dea9e295460ed33cd3 /net/openradius
parentcdeb671bcfff924408dd388708b15c3210e4579c (diff)
downloadports-e71bb0a17184e283f26aa17e7572600190964617.tar.gz
ports-e71bb0a17184e283f26aa17e7572600190964617.zip
Fix coredumps on amd64.
PR: ports/85839 Submitted by: maintainer, joerg
Notes
Notes: svn path=/head/; revision=142204
Diffstat (limited to 'net/openradius')
-rw-r--r--net/openradius/files/patch-ringbuf62
1 files changed, 62 insertions, 0 deletions
diff --git a/net/openradius/files/patch-ringbuf b/net/openradius/files/patch-ringbuf
new file mode 100644
index 000000000000..40692dfaf8d2
--- /dev/null
+++ b/net/openradius/files/patch-ringbuf
@@ -0,0 +1,62 @@
+--- common/ringbuf.c.orig Mon Feb 14 16:10:51 2005
++++ common/ringbuf.c Tue Aug 30 13:55:42 2005
+@@ -355,7 +355,7 @@
+ ssize_t ring_count(RING *r, RINGCNTFUNC func, ...)
+ {
+ va_list ap;
+- ssize_t len, ret;
++ ssize_t len, ret = 0;
+
+ len = ring_maxget(r);
+
+@@ -363,37 +363,41 @@
+
+ /* There is data available */
+
+- va_start(ap, func);
+-
+ if (r->r + len <= r->size) {
+
+ /* Message ends before end of buffer */
+
+ /* peek at single part, return whatever the
+ closure returns. */
+- return func(r->buf + r->r, len, 0, ap);
++ va_start(ap, func);
++ ret = func(r->buf + r->r, len, 0, ap);
++ va_end(ap);
+ }
+ else {
+
+ /* Message doesn't end before end of buffer */
+
+ /* peek at first part, till end of buffer */
++ va_start(ap, func);
+ ret = func(r->buf + r->r, r->size - r->r, 0, ap);
++ va_end(ap);
+
+ if (ret < r->size - r->r) {
+ /* Satisfied by first part; return whatever
+ the closure gave us. */
+- return ret;
+ }
+-
+- /* peek at rest, from start of buffer */
+- return ret + func(r->buf, len - (r->size - r->r),
+- ret, ap);
++ else {
++ /* peek at rest, from start of buffer */
++ va_start(ap, func);
++ ret += func(r->buf, len - (r->size - r->r),
++ ret, ap);
++ va_end(ap);
++ }
+ }
+ }
+
+ /* No data available, return 0. */
+- return 0;
++ return ret;
+ }
+
+