diff options
author | sobomax <sobomax@FreeBSD.org> | 2001-06-02 19:23:26 +0800 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2001-06-02 19:23:26 +0800 |
commit | d811eda123796de04c70dee976404c46da4ab2f8 (patch) | |
tree | dc2652e2a4a90b8327bc165845fd2dbcf0608525 /net/xtraceroute/files | |
parent | 7206bcae2bf18559ed0f93b48284a0fdd06df4ce (diff) | |
download | freebsd-ports-gnome-d811eda123796de04c70dee976404c46da4ab2f8.tar.gz freebsd-ports-gnome-d811eda123796de04c70dee976404c46da4ab2f8.tar.zst freebsd-ports-gnome-d811eda123796de04c70dee976404c46da4ab2f8.zip |
- Unbroke with threaded Mesa libraries (XFree86-4);
- provide workaround for sscanf(3) bug in 5-CURRENT, that causes SIGBUS.
Diffstat (limited to 'net/xtraceroute/files')
-rw-r--r-- | net/xtraceroute/files/patch-util.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/net/xtraceroute/files/patch-util.c b/net/xtraceroute/files/patch-util.c new file mode 100644 index 000000000000..ecf92fab3ea9 --- /dev/null +++ b/net/xtraceroute/files/patch-util.c @@ -0,0 +1,27 @@ +Workaround for a sscanf(3) bug in the FreeBSD 5-CURRENT. + +$FreeBSD$ + +--- util.c 2001/06/02 10:41:42 1.1 ++++ util.c 2001/06/02 11:14:20 +@@ -36,10 +36,19 @@ + double loc = 0; + float sub; + int i = 0; ++ int len; ++ char *tmp; ++ ++ len = strlen(str); ++ if (str[len - 1] == 'e') { ++ tmp = alloca(len); ++ strlcpy(tmp, str, len); ++ } else ++ tmp = str; + + while(1) + { +- sscanf(&str[i], "%f", &sub); ++ sscanf(&tmp[i], "%f", &sub); + loc += sub*factor; + + // Skip all spaces and tabs |