summaryrefslogtreecommitdiffstats
path: root/lib/libtacplus
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2009-11-25 14:59:28 +0000
committerattilio <attilio@FreeBSD.org>2009-11-25 14:59:28 +0000
commit0e8034918eebfb32c22e7c98709706005f4fdfe1 (patch)
tree16cde05f5e220954d2fbd3c61e5b0d4d88b4a4ee /lib/libtacplus
parent6b1883b1f0036c5d67df93e1084064b447e84c6f (diff)
downloadFreeBSD-src-0e8034918eebfb32c22e7c98709706005f4fdfe1.zip
FreeBSD-src-0e8034918eebfb32c22e7c98709706005f4fdfe1.tar.gz
In tac_get_av_value() empty attributes should be handled like 0-length
strings rather than unset strings. Fix the present wrong behaviour. Obtained from: Sandvine Incorporated Reviewed by: emaste Sponsored by: Sandvine Incorporated MFC: 1 week
Diffstat (limited to 'lib/libtacplus')
-rw-r--r--lib/libtacplus/taclib.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/libtacplus/taclib.c b/lib/libtacplus/taclib.c
index 6ac3c72..a44e834 100644
--- a/lib/libtacplus/taclib.c
+++ b/lib/libtacplus/taclib.c
@@ -1263,8 +1263,13 @@ tac_get_av_value(struct tac_handle *h, const char *attribute)
* h->srvr_avs[0] = "foobie=var1"
* h->srvr_avs[1] = "foo=var2"
* is handled.
+ *
+ * Note that for empty string attribute values a
+ * 0-length string is returned in order to distinguish
+ * against unset values.
+ * dump_str() will handle srvr.len == 0 correctly.
*/
- if (found_seperator == 1 && ch != end) {
+ if (found_seperator == 1) {
srvr.len = end - ch;
srvr.data = ch;
return dup_str(h, &srvr, NULL);
OpenPOWER on IntegriCloud