From 0e8034918eebfb32c22e7c98709706005f4fdfe1 Mon Sep 17 00:00:00 2001 From: attilio Date: Wed, 25 Nov 2009 14:59:28 +0000 Subject: [PATCH] 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 --- lib/libtacplus/taclib.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/libtacplus/taclib.c b/lib/libtacplus/taclib.c index 6ac3c72501c6..a44e83476e88 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);