diff options
author | attilio <attilio@FreeBSD.org> | 2009-11-25 14:59:28 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2009-11-25 14:59:28 +0000 |
commit | 0e8034918eebfb32c22e7c98709706005f4fdfe1 (patch) | |
tree | 16cde05f5e220954d2fbd3c61e5b0d4d88b4a4ee /lib/libtacplus | |
parent | 6b1883b1f0036c5d67df93e1084064b447e84c6f (diff) | |
download | FreeBSD-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.c | 7 |
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); |