X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Ftime-dst.c;h=926d22b94b62fd4c6180f6b96cdebb5caf301760;hb=e9e310f8e99c63c764f71ed0c224ccd3cceb90c7;hp=ceca2fafae2f027288b5bc0677726a176e6b3784;hpb=bdd13f6be4b588568683a1ab54f421fc6a636dbb;p=elogind.git diff --git a/src/shared/time-dst.c b/src/shared/time-dst.c index ceca2fafa..926d22b94 100644 --- a/src/shared/time-dst.c +++ b/src/shared/time-dst.c @@ -207,8 +207,8 @@ read_again: if (type_idxs[i] >= num_types) return -EINVAL; - if (BYTE_ORDER == BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width == 4 - : sizeof(time_t) == 4 || trans_width == 4) { + if (__BYTE_ORDER == __BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width == 4 + : sizeof(time_t) == 4 || trans_width == 4) { /* Decode the transition times, stored as 4-byte integers in network (big-endian) byte order. We work from the end of the array so as not to clobber the next element to be @@ -216,7 +216,7 @@ read_again: i = num_transitions; while (i-- > 0) transitions[i] = decode((char *)transitions + i * 4); - } else if (BYTE_ORDER != BIG_ENDIAN && sizeof(time_t) == 8) { + } else if (__BYTE_ORDER != __BIG_ENDIAN && sizeof(time_t) == 8) { /* Decode the transition times, stored as 8-byte integers in network (big-endian) byte order. */ for (i = 0; i < num_transitions; ++i) @@ -244,6 +244,8 @@ read_again: if (fread(zone_names, 1, chars, f) != chars) return -EINVAL; + zone_names[chars] = '\0'; + for (i = 0; i < num_isstd; ++i) { int c = getc(f); if (c == EOF)