diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-11-01 19:54:30 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-11-01 19:54:30 -0700 |
| commit | 5706608b3787935b0bcb115bb8fd899005e4ce65 (patch) | |
| tree | e5dbf77e5ac24dec32d0dceb48f7b86eb86e1474 /tests/sock.c | |
| parent | 75c40aa9009f453f6e35bc136d3e67a9cb1a4729 (diff) | |
| download | nng-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.c | 21 |
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) == |
