[Libguestfs] [PATCH v6 3/7] New API: yara_load

Richard W.M. Jones rjones at redhat.com
Tue Apr 18 08:10:21 UTC 2017


On Thu, Apr 06, 2017 at 11:41:03PM +0300, Matteo Cafasso wrote:
> +#include <yara.h>
> +
> +#define CLEANUP_DESTROY_YARA_COMPILER                           \
> +  __attribute__((cleanup(cleanup_destroy_yara_compiler)))

While we should probably get rid of HAVE_ATTRIBUTE_CLEANUP, while we
still have it you need to use it here and provide the alternative for
people who don't HAVE_ATTRIBUTE_CLEANUP.

> +/* Has one FileIn parameter.
> + * Takes optional arguments, consult optargs_bitmask.
> + */
> +int
> +do_yara_load (void)
> +{
> +  int ret = 0;

You're not returning 'ret', so call it something else, eg. 'r'.

> +  CLEANUP_CLOSE int fd = -1;
> +  char tmpfile[] = "/tmp/yaraXXXXXX";
> +
> +  fd = mkstemp (tmpfile);
> +  if (fd == -1) {
> +    reply_with_perror ("mkstemp");
> +    return -1;
> +  }
> +
> +  ret = upload_to_fd (fd);
> +  if (ret < 0) {

upload_to_fd returns 0 or -1, so only check for r == -1.

> +static void
> +compile_error_callback(int level, const char *name, int line,
> +                       const char *message, void *data)

Space before the opening parenthesis.

> +let daemon_functions = [
> +  { defaults with
> +      name = "yara_load"; added = (1, 37, 9);
> +      style = RErr, [FileIn "filename"], [];
> +      progress = true; cancellable = true;
> +      optional = Some "libyara";
> +      shortdesc = "load yara rules within libguestfs";
> +      longdesc = "\
> +Load a set of Yara rules from F<filename> within libguestfs appliance.

This is still confusingly worded, but after examining the
code I think I understand what you're trying to say.  Just
replace this first sentence with:

  "Upload a set of Yara rules from local file F<filename>.

> +Yara rules allow to categorize files based on textual or binary patterns
> +within their content.
> +See C<yara_scan> to see how to scan files with the loaded rules.

This should be: C<guestfs_yara_scan>.  The generator will
replace C<guestfs_ with the correct link.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v




More information about the Libguestfs mailing list