Em seg., 1 de jul. de 2024 às 14:35, Ranier Vilela <ranier...@gmail.com> escreveu:
> Em seg., 1 de jul. de 2024 às 06:20, Daniel Gustafsson <dan...@yesql.se> > escreveu: > >> > On 27 Jun 2024, at 13:50, Ranier Vilela <ranier...@gmail.com> wrote: >> >> > Now with file patch really attached. >> >> - if (strlen(backupidstr) > MAXPGPATH) >> + if (strlcpy(state->name, backupidstr, sizeof(state->name)) >= >> sizeof(state->name)) >> ereport(ERROR, >> >> Stylistic nit perhaps, I would keep the strlen check here and just >> replace the >> memcpy with strlcpy. Using strlen in the error message check makes the >> code >> more readable. >> > This is not performance-critical code, so I see no problem using strlen, > for the sake of readability. > > >> >> - char name[MAXPGPATH + 1]; >> + char name[MAXPGPATH];/* backup label name */ >> >> With the introduced use of strlcpy, why do we need to change this field? >> > The part about being the only reference in the entire code that uses > MAXPGPATH + 1. > MAXPGPATH is defined as 1024, so MAXPGPATH +1 is 1025. > I think this hurts the calculation of the array index, > preventing power two optimization. > > Another argument is that all other paths have a 1023 size limit, > I don't see why the backup label would have to be different. > > New version patch attached. > Sorry for v5, I forgot to update the patch and it was an error. best regards, Ranier Vilela
v6-avoid-incomplete-copy-string-do_pg_backup_start.patch
Description: Binary data