VirtualBox

Changeset 44878 in vbox for trunk/src/VBox/Additions


Ignore:
Timestamp:
Feb 28, 2013 9:31:43 PM (12 years ago)
Author:
vboxsync
Message:

GA: Linux shared folders: fix incorrect NLS table selection.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/linux/sharedfolders/vfsmod.c

    r44528 r44878  
    107107    memcpy(str_name->String.utf8, info->name, name_len + 1);
    108108
    109 /* Check if NLS charset is valid and not points to UTF8 table */
    110 #define VFSMOD_HAS_NLS(_name) \
    111     (_name[0] && strcmp(_name, "utf8"))
    112     if (VFSMOD_HAS_NLS(info->nls_name))
    113     {
    114         sf_g->nls = load_nls(info->nls_name);
    115         if (!sf_g->nls)
     109#define _IS_UTF8(_str) \
     110    (strcmp(_str, "utf8") == 0)
     111    /* Check if NLS charset is valid and not points to UTF8 table */
     112    if (info->nls_name[0])
     113    {
     114        if (_IS_UTF8(info->nls_name))
     115            sf_g->nls = NULL;
     116        else
    116117        {
    117             err = -EINVAL;
    118             LogFunc(("failed to load nls %s\n", info->nls_name));
    119             goto fail1;
     118            sf_g->nls = load_nls(info->nls_name);
     119            if (!sf_g->nls)
     120            {
     121                err = -EINVAL;
     122                LogFunc(("failed to load nls %s\n", info->nls_name));
     123                goto fail1;
     124            }
    120125        }
    121126    }
    122127    else
    123128    {
    124         /* If no NLS charset specified, try to load the default one */
    125         if (VFSMOD_HAS_NLS(CONFIG_NLS_DEFAULT))
     129        /* If no NLS charset specified, try to load the default
     130         * one if it's not points to UTF8. */
     131        if (_IS_UTF8(CONFIG_NLS_DEFAULT))
     132            sf_g->nls = NULL;
     133        else
    126134            sf_g->nls = load_nls_default();
    127         else
    128             sf_g->nls = NULL;
    129     }
    130 #undef VFSMOD_HAS_NLS
     135    }
     136#undef _IS_UTF8
    131137
    132138    rc = vboxCallMapFolder(&client_handle, str_name, &sf_g->map);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette