[cfe-commits] r165157 - /cfe/trunk/lib/Driver/OptTable.cpp

Jordan Rose jordan_rose at apple.com
Wed Oct 3 14:19:06 PDT 2012


Why not just use StringRef::startswith? That also does the length check first, which is more efficient than looking for the end of both strings at every character.


On Oct 3, 2012, at 13:58 , Benjamin Kramer <benny.kra at googlemail.com> wrote:

> Author: d0k
> Date: Wed Oct  3 15:58:09 2012
> New Revision: 165157
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=165157&view=rev
> Log:
> Fix invalid reads by memcmp.
> 
> Str may be smaller than Start->Name here. Use strncmp to avoid scanning past the
> end. Found by valgrind.
> 
> Modified:
>    cfe/trunk/lib/Driver/OptTable.cpp
> 
> Modified: cfe/trunk/lib/Driver/OptTable.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/OptTable.cpp?rev=165157&r1=165156&r2=165157&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Driver/OptTable.cpp (original)
> +++ cfe/trunk/lib/Driver/OptTable.cpp Wed Oct  3 15:58:09 2012
> @@ -162,7 +162,7 @@
>   for (; Start != End; ++Start) {
>     // Scan for first option which is a proper prefix.
>     for (; Start != End; ++Start)
> -      if (memcmp(Str, Start->Name, strlen(Start->Name)) == 0)
> +      if (strncmp(Str, Start->Name, strlen(Start->Name)) == 0)
>         break;
>     if (Start == End)
>       break;
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list