Module Name: src Committed By: matt Date: Wed Jul 25 01:07:49 UTC 2012
Modified Files: src/sbin/gpt: gpt.c Log Message: Make sure utf-16 strings are written as little endian words. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sbin/gpt/gpt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/gpt/gpt.c diff -u src/sbin/gpt/gpt.c:1.15 src/sbin/gpt/gpt.c:1.16 --- src/sbin/gpt/gpt.c:1.15 Sat Aug 27 17:38:16 2011 +++ src/sbin/gpt/gpt.c Wed Jul 25 01:07:49 2012 @@ -31,7 +31,7 @@ __FBSDID("$FreeBSD: src/sbin/gpt/gpt.c,v 1.16 2006/07/07 02:44:23 marcel Exp $"); #endif #ifdef __RCSID -__RCSID("$NetBSD: gpt.c,v 1.15 2011/08/27 17:38:16 joerg Exp $"); +__RCSID("$NetBSD: gpt.c,v 1.16 2012/07/25 01:07:49 matt Exp $"); #endif #include <sys/param.h> @@ -225,12 +225,14 @@ utf8_to_utf16(const uint8_t *s8, uint16_ } if (utfbytes == 0) { if (utfchar >= 0x10000 && s16idx + 2 >= s16len) - utfchar = 0xfffd; + utfchar = htole16(0xfffd); if (utfchar >= 0x10000) { - s16[s16idx++] = 0xd800 | ((utfchar>>10)-0x40); - s16[s16idx++] = 0xdc00 | (utfchar & 0x3ff); + s16[s16idx++] = + htole16(0xd800 | ((utfchar>>10)-0x40)); + s16[s16idx++] = + htole16(0xdc00 | (utfchar & 0x3ff)); } else - s16[s16idx++] = utfchar; + s16[s16idx++] = htole16(utfchar); if (s16idx == s16len) { s16[--s16idx] = 0; return;