Skip to content

Commit

Permalink
[iscsi] Parse IPv6 address in root path
Browse files Browse the repository at this point in the history
The iSCSI root path may contain a literal IPv6 address.  Update the
parser to handle this address format correctly.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
hreinecke authored and mcb30 committed Mar 1, 2018
1 parent 47849be commit c84f9d6
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/net/tcp/iscsi.c
Expand Up @@ -1921,6 +1921,7 @@ static int iscsi_parse_root_path ( struct iscsi_session *iscsi,
char rp_copy[ strlen ( root_path ) + 1 ];
char *rp_comp[NUM_RP_COMPONENTS];
char *rp = rp_copy;
int skip = 0;
int i = 0;
int rc;

Expand All @@ -1930,11 +1931,15 @@ static int iscsi_parse_root_path ( struct iscsi_session *iscsi,
rp_comp[i++] = rp;
if ( i == NUM_RP_COMPONENTS )
break;
for ( ; *rp != ':' ; rp++ ) {
for ( ; ( ( *rp != ':' ) || skip ) ; rp++ ) {
if ( ! *rp ) {
DBGC ( iscsi, "iSCSI %p root path \"%s\" "
"too short\n", iscsi, root_path );
return -EINVAL_ROOT_PATH_TOO_SHORT;
} else if ( *rp == '[' ) {
skip = 1;
} else if ( *rp == ']' ) {
skip = 0;
}
}
*(rp++) = '\0';
Expand Down

0 comments on commit c84f9d6

Please sign in to comment.