@ -154,17 +154,24 @@ static int set_gpt_info(block_dev_desc_t *dev_desc,
/* extract disk guid */
s = str ;
tok = strsep ( & s , " ; " ) ;
val = extract_val ( tok , " uuid_disk " ) ;
val = extract_val ( str , " uuid_disk " ) ;
if ( ! val ) {
# ifdef CONFIG_RANDOM_UUID
* str_disk_guid = malloc ( UUID_STR_LEN + 1 ) ;
gen_rand_uuid_str ( * str_disk_guid , UUID_STR_FORMAT_STD ) ;
# else
free ( str ) ;
return - 2 ;
# endif
} else {
val = strsep ( & val , " ; " ) ;
if ( extract_env ( val , & p ) )
p = val ;
* str_disk_guid = strdup ( p ) ;
free ( val ) ;
/* Move s to first partition */
strsep ( & s , " ; " ) ;
}
if ( extract_env ( val , & p ) )
p = val ;
* str_disk_guid = strdup ( p ) ;
free ( val ) ;
if ( strlen ( s ) = = 0 )
return - 3 ;
@ -192,20 +199,25 @@ static int set_gpt_info(block_dev_desc_t *dev_desc,
/* uuid */
val = extract_val ( tok , " uuid " ) ;
if ( ! val ) { /* 'uuid' is mandatory */
errno = - 4 ;
goto err ;
}
if ( extract_env ( val , & p ) )
p = val ;
if ( strlen ( p ) > = sizeof ( parts [ i ] . uuid ) ) {
printf ( " Wrong uuid format for partition %d \n " , i ) ;
if ( ! val ) {
/* 'uuid' is optional if random uuid's are enabled */
# ifdef CONFIG_RANDOM_UUID
gen_rand_uuid_str ( parts [ i ] . uuid , UUID_STR_FORMAT_STD ) ;
# else
errno = - 4 ;
goto err ;
# endif
} else {
if ( extract_env ( val , & p ) )
p = val ;
if ( strlen ( p ) > = sizeof ( parts [ i ] . uuid ) ) {
printf ( " Wrong uuid format for partition %d \n " , i ) ;
errno = - 4 ;
goto err ;
}
strcpy ( ( char * ) parts [ i ] . uuid , p ) ;
free ( val ) ;
}
strcpy ( ( char * ) parts [ i ] . uuid , p ) ;
free ( val ) ;
/* name */
val = extract_val ( tok , " name " ) ;
if ( ! val ) { /* name is mandatory */