@@ -178,19 +178,21 @@ gboolean bd_dm_remove (const gchar *map_name, GError **error) {
178178gchar * bd_dm_name_from_node (const gchar * dm_node , GError * * error ) {
179179 gchar * ret = NULL ;
180180 gboolean success = FALSE;
181+ g_autofree gchar * sys_path = g_strdup_printf ("/sys/class/block/%s/dm/name" , dm_node );
181182
182- gchar * sys_path = g_strdup_printf ("/sys/class/block/%s/dm/name" , dm_node );
183+ if (!dm_node || strlen (dm_node ) == 0 ) {
184+ g_set_error (error , BD_DM_ERROR , BD_DM_ERROR_DEVICE_NOEXIST ,
185+ "No DM node specified" );
186+ return NULL ;
187+ }
183188
184189 if (access (sys_path , R_OK ) != 0 ) {
185- g_free (sys_path );
186190 g_set_error (error , BD_DM_ERROR , BD_DM_ERROR_SYS ,
187191 "Failed to access dm node's parameters under /sys" );
188192 return NULL ;
189193 }
190194
191195 success = g_file_get_contents (sys_path , & ret , NULL , error );
192- g_free (sys_path );
193-
194196 if (!success ) {
195197 /* error is already populated */
196198 g_free (ret );
@@ -211,20 +213,21 @@ gchar* bd_dm_name_from_node (const gchar *dm_node, GError **error) {
211213 * Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_QUERY
212214 */
213215gchar * bd_dm_node_from_name (const gchar * map_name , GError * * error ) {
214- gchar * dev_path = NULL ;
215- gchar * ret = NULL ;
216- gchar * dev_mapper_path = g_strdup_printf ("/dev/mapper/%s" , map_name );
216+ g_autofree gchar * dev_path = NULL ;
217+ g_autofree gchar * dev_mapper_path = g_strdup_printf ("/dev/mapper/%s" , map_name );
218+
219+ if (!map_name || strlen (map_name ) == 0 ) {
220+ g_set_error (error , BD_DM_ERROR , BD_DM_ERROR_DEVICE_NOEXIST ,
221+ "No DM name specified" );
222+ return NULL ;
223+ }
217224
218225 dev_path = bd_utils_resolve_device (dev_mapper_path , error );
219- g_free (dev_mapper_path );
220226 if (!dev_path )
221227 /* error is already populated */
222228 return NULL ;
223229
224- ret = g_path_get_basename (dev_path );
225- g_free (dev_path );
226-
227- return ret ;
230+ return g_path_get_basename (dev_path );
228231}
229232
230233/**
0 commit comments