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;

Reply via email to