Download raw body.
gotsysd: use PATH_MAX for realpath
On Sat, Oct 10, 2026 at 03:24:55PM +0200, Martijn van Duren wrote:
> Found by gcc-4 on alpha :-)
>
> As per POSIX, realpath() stores up to PATH_MAX into resolved, so let's
> make sure that that space is available.
>
> While here, gcc-4 complains about brackets arround '&', so why not
> please our ancient compiler overlords by placing said brackets. Diff
> below allows gotsysd to be build on alpha with -Werror.
>
> martijn@
There was some reason why -portable needs _POSIX_PATH_MAX instead
of PATH_MAX. Does _POSIX_PATH_MAX not work for us?
> diff /home/martijn/src/got
> path + /home/martijn/src/got
> commit - 10f51ecc4cbfab15f63d68920c9674a2995fd394
> blob - e4e182649fed10798ea15941c5d98962ec48659e
> file + gotsysd/gotsysd.h
> --- gotsysd/gotsysd.h
> +++ gotsysd/gotsysd.h
> @@ -183,8 +183,8 @@ struct gotsysd_web_config {
>
> struct gotsysd {
> pid_t pid;
> - char unix_socket_path[_POSIX_PATH_MAX];
> - char repos_path[_POSIX_PATH_MAX];
> + char unix_socket_path[PATH_MAX];
> + char repos_path[PATH_MAX];
> char user_name[32];
> char gotd_username[32];
> char gotsys_conf_commit_id[GOT_OBJECT_ID_HEX_MAXLEN];
> commit - 10f51ecc4cbfab15f63d68920c9674a2995fd394
> blob - d8abeaf2d0a5fc1569525fd0be4ea5b228d59506
> file + gotsysd/libexec/gotsys-repo-create/gotsys-repo-create.c
> --- gotsysd/libexec/gotsys-repo-create/gotsys-repo-create.c
> +++ gotsysd/libexec/gotsys-repo-create/gotsys-repo-create.c
> @@ -56,7 +56,7 @@
> #include "gotsys.h"
>
> static struct gotsys_conf gotsysconf;
> -static char repos_path[_POSIX_PATH_MAX];
> +static char repos_path[PATH_MAX];
> static int repos_dir_fd = -1;
> uid_t gotd_uid;
> gid_t gotd_gid;
> commit - 10f51ecc4cbfab15f63d68920c9674a2995fd394
> blob - b057df8abd2756d0e491d4a746945a917b55ce82
> file + gotsysd/libexec/gotsys-useradd/gotsys-useradd.c
> --- gotsysd/libexec/gotsys-useradd/gotsys-useradd.c
> +++ gotsysd/libexec/gotsys-useradd/gotsys-useradd.c
> @@ -548,7 +548,7 @@ add_users(void)
> * put the new users before it, and preserve entries
> * after the yp entry.
> */
> - if (linelen > 1 && line[0] == '+' & line[1] == ':') {
> + if (linelen > 1 && (line[0] == '+') & (line[1] == ':')) {
Shouldn't that say && instead of & ?
> yp = 1;
> break;
> }
>
>
gotsysd: use PATH_MAX for realpath