On 01/07/2017 11:02 AM, Vladislav Egorov wrote: > If the str is long or isn't null-terminated, strlen() could take a lot > of time or even crash. I don't know why was it used in the first place, > maybe for platforms without strnlen(), but strnlen() is already used > inside of ralloc_strndup(), so this change should not additionally > break anything.
I don't know why, but it took a long time for me to convince myself that the value passed to cat() was ultimately the same. I really wish the original code had just been n = MIN2(n, strlen(str)); This patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> > --- > src/util/ralloc.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/src/util/ralloc.c b/src/util/ralloc.c > index df2b1d8..08cb989 100644 > --- a/src/util/ralloc.c > +++ b/src/util/ralloc.c > @@ -410,12 +410,7 @@ ralloc_strcat(char **dest, const char *str) > bool > ralloc_strncat(char **dest, const char *str, size_t n) > { > - /* Clamp n to the string length */ > - size_t str_length = strlen(str); > - if (str_length < n) > - n = str_length; > - > - return cat(dest, str, n); > + return cat(dest, str, strnlen(str, n)); > } > > char * > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev