Module Name: src Committed By: christos Date: Sun Aug 12 06:16:51 UTC 2012
Modified Files: src/external/bsd/ntp/dist/ntpd: refclock_parse.c Log Message: - make the append function to not append past the end of the string - use the append function some more To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/bsd/ntp/dist/ntpd/refclock_parse.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/ntp/dist/ntpd/refclock_parse.c diff -u src/external/bsd/ntp/dist/ntpd/refclock_parse.c:1.7 src/external/bsd/ntp/dist/ntpd/refclock_parse.c:1.8 --- src/external/bsd/ntp/dist/ntpd/refclock_parse.c:1.7 Sat Aug 11 16:09:08 2012 +++ src/external/bsd/ntp/dist/ntpd/refclock_parse.c Sun Aug 12 02:16:51 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: refclock_parse.c,v 1.7 2012/08/11 20:09:08 kardel Exp $ */ +/* $NetBSD: refclock_parse.c,v 1.8 2012/08/12 06:16:51 christos Exp $ */ /* * /src/NTP/REPOSITORY/ntp4-dev/ntpd/refclock_parse.c,v 4.81 2009/05/01 10:15:29 kardel RELEASE_20090105_A @@ -2423,12 +2423,23 @@ ap(char *buffer, size_t len, char *pos, { va_list va; int l; + size_t rem = len - (pos - buffer); + + if (rem == 0) + return pos; va_start(va, fmt); - l = vsnprintf(pos, len - (pos - buffer), fmt, va); + l = vsnprintf(pos, rem, fmt, va); va_end(va); - if (l != -1) - pos += l; + + if (l != -1) { + rem--; + if (rem >= l) + pos += l; + else + pos += rem; + } + return pos; } @@ -5419,7 +5430,7 @@ trimbletsip_message( if (s) { - snprintf(t, BUFFER_SIZE(pbuffer, t), "%s=\"", s->varname); + t = ap(pbuffer, sizeof(pbuffer), t, "%s=\"", s->varname); } else { @@ -5429,12 +5440,10 @@ trimbletsip_message( var_flag = s->varmode; - t += strlen(t); - switch(cmd) { case CMD_RCURTIME: - snprintf(t, BUFFER_SIZE(pbuffer, t), "%f, %d, %f", + t = ap(pbuffer, sizeof(pbuffer), t, "%f, %d, %f", getflt((unsigned char *)&mb(0)), getshort((unsigned char *)&mb(4)), getflt((unsigned char *)&mb(6))); break;