From c8cb65fcd93e43bb733826b779fe6dca3827b3b4 Mon Sep 17 00:00:00 2001 From: cha0smaster Date: Tue, 19 Jul 2005 23:13:26 +0000 Subject: [PATCH] Make @outs_len to be 0 when @**outs NULL in ntfs_ucstombs calls. Previous code it correct since @outs_len is ingored when @**outs == NULL, but may confuse because it was equal to @ins_len what is incorrect (eg. international utf8 characters). --- ntfsprogs/ntfsrm.c | 4 ++-- ntfsprogs/ntfsundelete.c | 4 ++-- ntfsprogs/utils.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ntfsprogs/ntfsrm.c b/ntfsprogs/ntfsrm.c index 70309183..6df0669b 100644 --- a/ntfsprogs/ntfsrm.c +++ b/ntfsprogs/ntfsrm.c @@ -1270,7 +1270,7 @@ static int ntfs_dt_count_root (struct ntfs_dt *dt) } if (!(entry->flags & INDEX_ENTRY_END)) { - ntfs_ucstombs (entry->key.file_name.file_name, entry->key.file_name.file_name_length, &name, entry->key.file_name.file_name_length); + ntfs_ucstombs (entry->key.file_name.file_name, entry->key.file_name.file_name_length, &name, 0); //printf ("\tinode %8lld %s\n", MREF (entry->indexed_file), name); free (name); name = NULL; @@ -1337,7 +1337,7 @@ static int ntfs_dt_count_alloc (struct ntfs_dt *dt) if (entry->flags & INDEX_ENTRY_END) { break; } else { - ntfs_ucstombs (entry->key.file_name.file_name, entry->key.file_name.file_name_length, &name, entry->key.file_name.file_name_length); + ntfs_ucstombs (entry->key.file_name.file_name, entry->key.file_name.file_name_length, &name, 0); //printf ("\tinode %8lld %s\n", MREF (entry->indexed_file), name); free (name); name = NULL; diff --git a/ntfsprogs/ntfsundelete.c b/ntfsprogs/ntfsundelete.c index 80d4d6af..d2b7978c 100644 --- a/ntfsprogs/ntfsundelete.c +++ b/ntfsprogs/ntfsundelete.c @@ -882,7 +882,7 @@ static int get_filenames (struct ufile *file, ntfs_volume* vol) name->date_r = ntfs2utc (sle64_to_cpu (attr->last_access_time)); if (ntfs_ucstombs (name->uname, name->uname_len, &name->name, - name->uname_len) < 0) { + 0) < 0) { Dprintf ("ERROR: Couldn't translate filename to current locale.\n"); } @@ -957,7 +957,7 @@ static int get_data (struct ufile *file, ntfs_volume *vol) data->uname_len = rec->name_length; if (ntfs_ucstombs (data->uname, data->uname_len, &data->name, - data->uname_len) < 0) { + 0) < 0) { Eprintf ("ERROR: Cannot translate name into current locale.\n"); } } diff --git a/ntfsprogs/utils.c b/ntfsprogs/utils.c index 40fe9022..c9caacbb 100644 --- a/ntfsprogs/utils.c +++ b/ntfsprogs/utils.c @@ -461,7 +461,7 @@ int utils_inode_get_name (ntfs_inode *inode, char *buffer, int bufsize) } if (ntfs_ucstombs (attr->file_name, attr->file_name_length, - &names[i], attr->file_name_length) < 0) { + &names[i], 0) < 0) { char *temp; Eprintf ("Couldn't translate filename to current locale.\n"); temp = malloc (30); @@ -542,7 +542,7 @@ int utils_attr_get_name (ntfs_volume *vol, ATTR_RECORD *attr, char *buffer, int if (attrdef) { name = NULL; namelen = ntfs_ucsnlen (attrdef->name, sizeof (attrdef->name)); - if (ntfs_ucstombs (attrdef->name, namelen, &name, namelen) < 0) { + if (ntfs_ucstombs (attrdef->name, namelen, &name, 0) < 0) { Eprintf ("Couldn't translate attribute type to current locale.\n"); // ? return 0; @@ -568,7 +568,7 @@ int utils_attr_get_name (ntfs_volume *vol, ATTR_RECORD *attr, char *buffer, int name = NULL; namelen = attr->name_length; if (ntfs_ucstombs ((ntfschar *)((char *)attr + attr->name_offset), - namelen, &name, namelen) < 0) { + namelen, &name, 0) < 0) { Eprintf ("Couldn't translate attribute name to current locale.\n"); // ? len = snprintf (buffer, bufsize, "");