Michal Nazarewicz <[email protected]> writes:
> +=item credential_read( FILEHANDLE )
> +
> +Reads credential key-value pairs from C<FILEHANDLE>. Reading stops at EOF or
> +when an empty line is encountered. Each line must be of the form
> C<key=value>
> +with a non-empty key. Function returns hash with all read values. Any white
> +space (other then new-line character) is preserved.
Typo: other then -> than.
> +sub credential_read {
> + my ($self, $reader) = _maybe_self(@_);
> + my %credential;
> + while (<$reader>) {
> + chomp;
> + if ($_ eq '') {
> + last;
> + } elsif (!/^([^=]+)=(.*)$/) {
Good.
> + # Check if $credential is valid prior to writing anything
> + while (($key, $value) = each %$credential) {
> + if (!defined $key || !length $key) {
> + throw Error::Simple("credential key empty or
> undefined");
> + } elsif ($key =~ /[=\n\0]/) {
> + throw Error::Simple("credential key contains invalid
> characters: $key");
> + } elsif (defined $value && $value =~ /[\n\0]/) {
> + throw Error::Simple("credential value for key=$key
> contains invalid characters: $value");
> + }
> + }
Good.
These checks seem to address all the points raised during discussion
about when the API should reject values.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html