Security Advisories (4)
CVE-2026-61485 (2026-08-05)

Apache Lucy: Freezer/InStream deserialization bomb - unbounded allocation reading an index ** UNSUPPORTED WHEN ASSIGNED ** Uncontrolled Recursion vulnerability in Apache Lucy. This issue affects Apache Lucy: all versions. As this project is retired, we do not plan to release a version that fixes this issue. Users are recommended to find an alternative or restrict access to the instance to trusted users. NOTE: This vulnerability only affects products that are no longer supported by the maintainer.

CVE-2026-61484 (2026-08-05)

Apache Lucy: LucyX::Remote::SearchServer unauthenticated remote Storable::thaw -> RCE/DoS ** UNSUPPORTED WHEN ASSIGNED ** Deserialization of Untrusted Data vulnerability in Apache Lucy. This issue affects Apache Lucy: all versions. As this project is retired, we do not plan to release a version that fixes this issue. Users are recommended to find an alternative or restrict access to the instance to trusted users. NOTE: This vulnerability only affects products that are no longer supported by the maintainer.

CVE-2026-61483 (2026-08-05)

Apache Lucy: QueryParser unbounded recursion on deeply-nested query -> C-stack-overflow DoS ** UNSUPPORTED WHEN ASSIGNED ** Uncontrolled Recursion vulnerability in Apache Lucy. This issue affects Apache Lucy: all versions. As this project is retired, we do not plan to release a version that fixes this issue. Users are recommended to find an alternative or restrict access to the instance to trusted users. NOTE: This vulnerability only affects products that are no longer supported by the maintainer.

CVE-2026-61486 (2026-08-05)

Apache Lucy: stack-buffer-overflow in JSON parser error reporter on malformed input ** UNSUPPORTED WHEN ASSIGNED ** Stack-based Buffer Overflow vulnerability in Apache Lucy. This issue affects Apache Lucy: all versions. As this project is retired, we do not plan to release a version that fixes this issue. Users are recommended to find an alternative or restrict access to the instance to trusted users. NOTE: This vulnerability only affects products that are no longer supported by the maintainer.

NAME

Clownfish::CFC::Binding::Perl::Class - Generate Perl binding code for a Clownfish::CFC::Class.

CLASS METHODS

register

Clownfish::CFC::Binding::Perl::Class->register(
    parcel       => 'MyProject' ,                         # required
    class_name   => 'Foo::FooJr',                         # required
    bind_methods => [qw( Do_Stuff _get_foo|Get_Foo )],    # default: undef
    bind_constructors => [qw( new _new2|init2 )],         # default: undef
    make_pod          => [qw( get_foo )],                 # default: undef
    xs_code           => undef,                           # default: undef
);

Create a new class binding and lodge it in the registry. May only be called once for each unique class name, and must be called after all classes have been parsed (via Clownfish::CFC::Hierarchy's build()).

  • parcel - A Clownfish::CFC::Parcel or parcel name.

  • class_name - The name of the class to be registered.

  • xs_code - Raw XS code to be included in the final .xs file generated by Clownfish::CFC::Binding::Perl. The XS directives PACKAGE and MODULE should be specified.

  • bind_methods - An array of names for novel methods for which XS bindings should be auto-generated, supplied using Clownfish's Macro_Name method-naming convention. The Perl subroutine name will be derived by lowercasing Method_Name to method_name, but this can be overridden by prepending an alias and a pipe: e.g. _get_foo|Get_Foo.

  • bind_constructors - An array of constructor names. The default implementing function is the class's init function, unless it is overridden using a pipe-separated string: _new2|init2 would create a Perl subroutine "_new2" which would invoke myproj_FooJr_init2.

  • make_pod - A specification for generating POD. TODO: document this spec, or break it up into multiple methods. (For now, just see examples from the source code.)

singleton

my $binding = Clownfish::CFC::Binding::Perl::Class->singleton($class_name);

Given a class name, return a class binding if one exists.

registered

my $registered = Clownfish::CFC::Binding::Perl::Class->registered;

All registered bindings.

OBJECT METHODS

get_class_name get_bind_methods get_bind_methods get_make_pod get_xs_code get_client

Accessors. get_client retrieves the Clownfish::CFC::Class module to be bound.

constructor_bindings

my @ctor_bindings = $class_binding->constructor_bindings;

Return a list of Clownfish::CFC::Binding::Perl::Constructor objects created as per the bind_constructors spec.

method_bindings

my @method_bindings = $class_binding->method_bindings;

Return a list of Clownfish::CFC::Binding::Perl::Method objects created as per the bind_methods spec.

create_pod

my $pod = $class_binding->create_pod;

Auto-generate POD according to the make_pod spec, if such a spec was supplied.