Changeset 16248

Show
Ignore:
Timestamp:
04/25/08 16:47:05 (7 months ago)
Author:
piotras
Message:

legacy_auth: transform password value if it doesn't hold string type

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/midgard/core/midgard/src/midgard_user.c

    r16242 r16248  
    276276        MIDGARD_GET_UINT_FROM_VALUE(person_id, value); 
    277277        value = gda_data_model_get_value_at (model, 1, 0); 
    278         const gchar *passwd = g_value_get_string(value); 
     278 
     279        GValue passval = {0, }; 
     280        g_value_init(&passval, G_TYPE_STRING); 
     281 
     282        /* GDA can give us binary type. 
     283         * FIXME when GDA 4 is released */ 
     284        if(!G_VALUE_HOLDS_STRING(value)) { 
     285         
     286                g_value_transform(value, &passval); 
     287         
     288        } else { 
     289 
     290                g_value_copy(value, &passval); 
     291        } 
     292 
     293        const gchar *passwd = g_value_get_string(&passval); 
     294 
     295        if(passwd == NULL || g_str_equal(passwd, "")) { 
     296                 
     297                g_warning("Can not handle null or empty passwords"); 
     298                goto FREE_AND_RETURN_NULL; 
     299        } 
     300 
    279301        const gchar *cipher; 
    280302 
     
    293315                midgard_connection_set_sitegroup(mgd, current_sg); 
    294316                g_object_unref(model); 
    295                 return NULL; 
    296         } 
    297          
     317                g_value_unset(&passval); 
     318                return NULL; 
     319        } 
     320 
     321        g_value_unset(&passval); 
     322 
    298323        if((sg_id == 0 && sitegroup == NULL) 
    299                         || (g_str_equal(sitegroup, "") && sg_id == 0)) { 
     324                        || ((*sitegroup == '\0') && sg_id == 0)) { 
    300325                 
    301326                user_type = MIDGARD_USER_TYPE_ROOT;