Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 140015
b: refs/heads/master
c: 59285c2
h: refs/heads/master
i:
  140013: 283550e
  140011: 0407351
  140007: 3c5d607
  139999: 4e33444
v: v3
  • Loading branch information
Jan Kara committed Apr 2, 2009
1 parent d83936b commit 443c6a1
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 557f5a1468394069da2bd6a63e23970ff12aa072
refs/heads/master: 59285c28d18b77437e6dc7c2abb9aaee10ec3a75
21 changes: 16 additions & 5 deletions trunk/fs/udf/unicode.c
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ static int udf_CS0toNLS(struct nls_table *nls, struct ustr *utf_o,
{
const uint8_t *ocu;
uint8_t cmp_id, ocu_len;
int i;
int i, len;


ocu_len = ocu_i->u_len;
Expand All @@ -279,8 +279,13 @@ static int udf_CS0toNLS(struct nls_table *nls, struct ustr *utf_o,
if (cmp_id == 16)
c = (c << 8) | ocu[i++];

utf_o->u_len += nls->uni2char(c, &utf_o->u_name[utf_o->u_len],
UDF_NAME_LEN - utf_o->u_len);
len = nls->uni2char(c, &utf_o->u_name[utf_o->u_len],
UDF_NAME_LEN - utf_o->u_len);
/* Valid character? */
if (len >= 0)
utf_o->u_len += len;
else
utf_o->u_name[utf_o->u_len++] = '?';
}
utf_o->u_cmpID = 8;

Expand All @@ -290,7 +295,8 @@ static int udf_CS0toNLS(struct nls_table *nls, struct ustr *utf_o,
static int udf_NLStoCS0(struct nls_table *nls, dstring *ocu, struct ustr *uni,
int length)
{
unsigned len, i, max_val;
int len;
unsigned i, max_val;
uint16_t uni_char;
int u_len;

Expand All @@ -302,8 +308,13 @@ static int udf_NLStoCS0(struct nls_table *nls, dstring *ocu, struct ustr *uni,
u_len = 0U;
for (i = 0U; i < uni->u_len; i++) {
len = nls->char2uni(&uni->u_name[i], uni->u_len - i, &uni_char);
if (len <= 0)
if (!len)
continue;
/* Invalid character, deal with it */
if (len < 0) {
len = 1;
uni_char = '?';
}

if (uni_char > max_val) {
max_val = 0xffffU;
Expand Down

0 comments on commit 443c6a1

Please sign in to comment.