diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-03-22 08:44:33 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-03-22 08:44:33 +0000 |
commit | 33f4f49804f7940a8ed95b3185bed27ad406c204 (patch) | |
tree | 171e1bdc072c776a61751e9f692b66f7dbf5a50d /src/util | |
parent | 9063a296aff487a8c3e9e7f619215a44f552adca (diff) | |
download | gnunet-33f4f49804f7940a8ed95b3185bed27ad406c204.tar.gz gnunet-33f4f49804f7940a8ed95b3185bed27ad406c204.zip |
-never assert on bogus input, return error code
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/strings.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/util/strings.c b/src/util/strings.c index de32b1c03..91d27d84e 100644 --- a/src/util/strings.c +++ b/src/util/strings.c | |||
@@ -852,7 +852,8 @@ GNUNET_STRINGS_string_to_data (const char *enc, size_t enclen, | |||
852 | return GNUNET_SYSERR; | 852 | return GNUNET_SYSERR; |
853 | while (wpos > 0) | 853 | while (wpos > 0) |
854 | { | 854 | { |
855 | GNUNET_assert (rpos > 0); | 855 | if (0 == rpos) |
856 | return GNUNET_SYSERR; | ||
856 | bits = ((ret = getValue__ (enc[--rpos])) << vbit) | bits; | 857 | bits = ((ret = getValue__ (enc[--rpos])) << vbit) | bits; |
857 | if (-1 == ret) | 858 | if (-1 == ret) |
858 | return GNUNET_SYSERR; | 859 | return GNUNET_SYSERR; |
@@ -864,9 +865,9 @@ GNUNET_STRINGS_string_to_data (const char *enc, size_t enclen, | |||
864 | vbit -= 8; | 865 | vbit -= 8; |
865 | } | 866 | } |
866 | } | 867 | } |
867 | GNUNET_assert (rpos == 0); | 868 | if ( (0 != rpos) || |
868 | GNUNET_assert (vbit == 0); | 869 | (0 != vbit) ) |
869 | 870 | return GNUNET_SYSERR; | |
870 | return GNUNET_OK; | 871 | return GNUNET_OK; |
871 | } | 872 | } |
872 | 873 | ||