Sanjay,
Sanjay Nadkarni wrote:
> ...
>>>
>>> auto_parse.c:
>>> 193 and others:
>>> if p is NULL, wouldn't this be an error. If so it will not be
>>> caught. Similar issues with other parsed values.
>> Errors could occur in auto_parse_manifest.c during tag parsing that
>> would be ignored. However, these errors would be very unlikely,
>> since they would involve a basic breakdown in the embedded Python
>> interpreter, which has already been invoked to validate the
>> manifest. Since fixing this would involve many changes in three
>> different modules, and since this was not introduced by iSCSI, I
>> would prefer to file a bug on this and handle it later at a more
>> appropriate priority.
>
> Sorry for not being clear. There are 2 issues here:
>
> 1. If you truly believe that p != NULL then why not change them to an
> assert.
p == NULL when there is no value for the tag in the manifest (as well as
the Python interpreter errors describe just above). Remember that
assert() only has an effect in a debug build. The Python errors in
auto_parse_manifest.c could have assert()s so that these failures would
cause assertion failures in a debug build. Would that suffice?
> 2. Sorry for not being clear. I was really asking where is the
> sematic parsing occurring ?
The only semantic parsing with these new values is in
td_iscsi.c:parse_lun_num(), and even that doesn't report parsing
problems explicitly. Parameters that could benefit from some semantic
validation are: IP address, LUN. port could be checked for absurd values.
>
>>>
>>>
>>> auto_td.c:
>>> 482: Just to be sure..when "if" statement fails,
>>> diskiscsiname and diskiscsiip are both either
>>> defined or undefined. A comment to that effect would be useful.
>>> 492: I would have thought that rootpath[MAXNAMELEN] would be
>>> sufficient (i.e. 256) instead of MAXPATHLEN which is
>>> 1024.
>> According to RFC 3720, the iSCSI name itself can be up to 223 bytes.
>> Add to that the maximum length of the IP address, port number,
>> protocol, and LUN, plus the "iscsi:" and separator characters and
>> this is over 256 bytes.
> Okay
>>>
>>> 539: strncmp(rootpath, "iscsi:", strlen("iscsi:")) would be
>>> preferable.
>>>
> ???
What's the problem here? The requested change on 539 was made in the
source and appears in the webrev.
Thank you,
William