[PATCH 2/4] compare_string_array: code shrink

Denys Vlasenko vda.linux at googlemail.com
Mon Jun 29 14:11:32 UTC 2020


Applied, thanks!

On Thu, Jun 11, 2020 at 3:45 PM Martin Lewis <martin.lewis.x84 at gmail.com> wrote:
>
> Code shrink and prevention of possible out of bounds access.
>
> function                                             old     new   delta
> nth_string                                            36      26     -10
> ------------------------------------------------------------------------------
> (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-10)             Total: -10 bytes
>    text    data     bss     dec     hex filename
>  981342   16915    1872 1000129   f42c1 busybox_old
>  981332   16915    1872 1000119   f42b7 busybox_unstripped
>
> Signed-off-by: Martin Lewis <martin.lewis.x84 at gmail.com>
> ---
>  libbb/compare_string_array.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/libbb/compare_string_array.c b/libbb/compare_string_array.c
> index 01a9df0e2..a06e57d3d 100644
> --- a/libbb/compare_string_array.c
> +++ b/libbb/compare_string_array.c
> @@ -117,8 +117,11 @@ int FAST_FUNC index_in_substrings(const char *strings, const char *key)
>  const char* FAST_FUNC nth_string(const char *strings, int n)
>  {
>         while (n) {
> -               n--;
> -               strings += strlen(strings) + 1;
> +               if (*strings++ == '\0') {
> +                       if (*strings == '\0') /* reached end of strings */
> +                               break;
> +                       n--;
> +               }
>         }
>         return strings;
>  }
> --
> 2.11.0
>
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox


More information about the busybox mailing list