aboutsummaryrefslogtreecommitdiff
path: root/tests/sock.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-11-01 19:54:30 -0700
committerGarrett D'Amore <garrett@damore.org>2018-11-01 19:54:30 -0700
commit5706608b3787935b0bcb115bb8fd899005e4ce65 (patch)
treee5dbf77e5ac24dec32d0dceb48f7b86eb86e1474 /tests/sock.c
parent75c40aa9009f453f6e35bc136d3e67a9cb1a4729 (diff)
downloadnng-5706608b3787935b0bcb115bb8fd899005e4ce65.tar.gz
nng-5706608b3787935b0bcb115bb8fd899005e4ce65.tar.bz2
nng-5706608b3787935b0bcb115bb8fd899005e4ce65.zip
fixes #766 NNG asserts when setting socket name
Reported by @TBastiani (with suggested fix). Test validation added.
Diffstat (limited to 'tests/sock.c')
-rw-r--r--tests/sock.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/sock.c b/tests/sock.c
index 4aef1f38..562a05d7 100644
--- a/tests/sock.c
+++ b/tests/sock.c
@@ -122,6 +122,27 @@ TestMain("Socket Operations", {
nng_strfree(allocd);
});
+ Convey("Oversize sockname handled right", {
+ char name[256]; // 64 is max
+ size_t sz = sizeof(name);
+ memset(name, 'A', sz);
+ So(nng_setopt(s1, NNG_OPT_SOCKNAME, name,
+ sz) == NNG_EINVAL);
+ name[sz - 1] = '\0';
+ So(nng_setopt(s1, NNG_OPT_SOCKNAME, name,
+ sz) == NNG_EINVAL);
+
+ strcpy(name, "hello");
+ So(nng_setopt(
+ s1, NNG_OPT_SOCKNAME, name, sz) == 0);
+ sz = sizeof(name);
+ memset(name, 'B', sz);
+ So(nng_getopt(
+ s1, NNG_OPT_SOCKNAME, name, &sz) == 0);
+ So(sz == 6);
+ So(strcmp(name, "hello") == 0);
+ });
+
Convey("RAW option works", {
bool raw;
So(nng_getopt_bool(s1, NNG_OPT_RAW, &raw) ==