]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Print only printable characters from refid
authorMiroslav Lichvar <mlichvar@redhat.com>
Wed, 13 Jan 2010 13:00:12 +0000 (14:00 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Wed, 13 Jan 2010 13:00:12 +0000 (14:00 +0100)
util.c

diff --git a/util.c b/util.c
index c55f305987eb6133239257c850561dc88c8aee85..45a6821f16bfb75936bd20ec5223640407c50b10 100644 (file)
--- a/util.c
+++ b/util.c
@@ -244,14 +244,19 @@ UTI_TimestampToString(NTP_int64 *ts)
 char *
 UTI_RefidToString(unsigned long ref_id)
 {
-  unsigned int a, b, c, d;
-  char *result;
-  a = (ref_id>>24) & 0xff;
-  b = (ref_id>>16) & 0xff;
-  c = (ref_id>> 8) & 0xff;
-  d = (ref_id>> 0) & 0xff;
+  unsigned int i, j, c;
+  char buf[5], *result;
+
+  for (i = j = 0; i < 4; i++) {
+    c = (ref_id >> (24 - i * 8)) & 0xff;
+    if (isprint(c))
+      buf[j++] = c;
+  }
+
+  buf[j] = '\0';
+
   result = NEXT_BUFFER;
-  snprintf(result, BUFFER_LENGTH, "%c%c%c%c", a, b, c, d);
+  snprintf(result, BUFFER_LENGTH, "%s", buf);
   return result;
 }