[Libguestfs] Remaining syntax-check errors in libguestfs
Richard W.M. Jones
rjones at redhat.com
Mon Sep 17 09:08:39 UTC 2012
On Mon, Sep 17, 2012 at 10:23:04AM +0200, Jim Meyering wrote:
> >> prohibit_path_max_allocation
> >> daemon/initrd.c:41: char filename[PATH_MAX];
> >> daemon/initrd.c:126: char fullpath[PATH_MAX];
> >> daemon/inotify.c:310: char buf[PATH_MAX];
> >> daemon/link.c:38: char link[PATH_MAX];
> >> daemon/link.c:63: char link[PATH_MAX];
> >> daemon/realpath.c:86: char ret[PATH_MAX+1] = "/";
> >> daemon/xattr.c:272: char pathname[PATH_MAX];
> >> src/launch-appliance.c:179: addr.sun_path[UNIX_PATH_MAX-1] = '\0';
> >> src/launch-libvirt.c:200: addr.sun_path[UNIX_PATH_MAX-1] = '\0';
> >> src/launch-libvirt.c:224: addr.sun_path[UNIX_PATH_MAX-1] = '\0';
> >> src/launch-unix.c:64: addr.sun_path[UNIX_PATH_MAX-1] = '\0';
> >> maint.mk: Avoid stack allocations of size PATH_MAX
> >> make: *** [sc_prohibit_path_max_allocation] Error 1
> >
> > The daemon ones are bugs in libguestfs. I haven't fixed them yet.
> >
> > However the use of UNIX_PATH_MAX looks OK to me. I think the regexp
> > is over-matching.
>
> Good catch.
> The regexp in that test is too loose. This fixes it:
>
> diff --git a/top/maint.mk b/top/maint.mk
> index 4627bc5..a6d1324 100644
> --- a/top/maint.mk
> +++ b/top/maint.mk
> @@ -1216,7 +1216,7 @@ sc_Wundef_boolean:
> # not be constant, or might overflow a stack. In general, use PATH_MAX as
> # a limit, not an array or alloca size.
> sc_prohibit_path_max_allocation:
> - @prohibit='(\balloca *\([^)]*|\[[^]]*)PATH_MAX' \
> + @prohibit='(\balloca *\([^)]*|\[[^]]*)\bPATH_MAX' \
> halt='Avoid stack allocations of size PATH_MAX' \
> $(_sc_search_regexp)
Tested and confirmed this patch works.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org
More information about the Libguestfs
mailing list