udf: udf_CS0toUTF8 cleanup
authormarcin.slusarz@gmail.com <marcin.slusarz@gmail.com>
Wed, 30 Jan 2008 21:03:51 +0000 (22:03 +0100)
committerJan Kara <jack@suse.cz>
Thu, 17 Apr 2008 12:22:23 +0000 (14:22 +0200)
- fix error handling - always zero output variable
- don't zero explicitely fields zeroed by memset
- mark "in" paramater as const
- remove outdated comment

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/udf/udfdecl.h
fs/udf/unicode.c

index d3aae56..2310b5c 100644 (file)
@@ -175,7 +175,7 @@ extern int udf_get_filename(struct super_block *, uint8_t *, uint8_t *, int);
 extern int udf_put_filename(struct super_block *, const uint8_t *, uint8_t *,
                            int);
 extern int udf_build_ustr(struct ustr *, dstring *, int);
-extern int udf_CS0toUTF8(struct ustr *, struct ustr *);
+extern int udf_CS0toUTF8(struct ustr *, const struct ustr *);
 
 /* ialloc.c */
 extern void udf_free_inode(struct inode *);
index b9de050..05bc505 100644 (file)
@@ -82,9 +82,6 @@ static int udf_build_ustr_exact(struct ustr *dest, dstring *ptr, int exactsize)
  * PURPOSE
  *     Convert OSTA Compressed Unicode to the UTF-8 equivalent.
  *
- * DESCRIPTION
- *     This routine is only called by udf_filldir().
- *
  * PRE-CONDITIONS
  *     utf                     Pointer to UTF-8 output buffer.
  *     ocu                     Pointer to OSTA Compressed Unicode input buffer
@@ -98,43 +95,39 @@ static int udf_build_ustr_exact(struct ustr *dest, dstring *ptr, int exactsize)
  *     November 12, 1997 - Andrew E. Mileski
  *     Written, tested, and released.
  */
-int udf_CS0toUTF8(struct ustr *utf_o, struct ustr *ocu_i)
+int udf_CS0toUTF8(struct ustr *utf_o, const struct ustr *ocu_i)
 {
-       uint8_t *ocu;
-       uint32_t c;
+       const uint8_t *ocu;
        uint8_t cmp_id, ocu_len;
        int i;
 
-       ocu = ocu_i->u_name;
-
        ocu_len = ocu_i->u_len;
-       cmp_id = ocu_i->u_cmpID;
-       utf_o->u_len = 0;
-
        if (ocu_len == 0) {
                memset(utf_o, 0, sizeof(struct ustr));
-               utf_o->u_cmpID = 0;
-               utf_o->u_len = 0;
                return 0;
        }
 
-       if ((cmp_id != 8) && (cmp_id != 16)) {
+       cmp_id = ocu_i->u_cmpID;
+       if (cmp_id != 8 && cmp_id != 16) {
+               memset(utf_o, 0, sizeof(struct ustr));
                printk(KERN_ERR "udf: unknown compression code (%d) stri=%s\n",
                       cmp_id, ocu_i->u_name);
                return 0;
        }
 
+       ocu = ocu_i->u_name;
+       utf_o->u_len = 0;
        for (i = 0; (i < ocu_len) && (utf_o->u_len <= (UDF_NAME_LEN - 3));) {
 
                /* Expand OSTA compressed Unicode to Unicode */
-               c = ocu[i++];
+               uint32_t c = ocu[i++];
                if (cmp_id == 16)
                        c = (c << 8) | ocu[i++];
 
                /* Compress Unicode to UTF-8 */
-               if (c < 0x80U) {
+               if (c < 0x80U)
                        utf_o->u_name[utf_o->u_len++] = (uint8_t)c;
-               else if (c < 0x800U) {
+               else if (c < 0x800U) {
                        utf_o->u_name[utf_o->u_len++] =
                                                (uint8_t)(0xc0 | (c >> 6));
                        utf_o->u_name[utf_o->u_len++] =