Security Advisories (2)
CVE-2018-10888 (2018-07-10)

A flaw was found in libgit2 before version 0.27.3. A missing check in git_delta_apply function in delta.c file, may lead to an out-of-bound read while reading a binary delta file. An attacker may use this flaw to cause a Denial of Service.

CVE-2018-10887 (2018-07-10)

A flaw was found in libgit2 before version 0.27.3. It has been discovered that an unexpected sign extension in git_delta_apply function in delta.c file may lead to an integer overflow which in turn leads to an out of bound read, allowing to read before the base object. An attacker may use this flaw to leak memory addresses or cause a Denial of Service.

NAME

Git::Raw::Walker - Git revwalker class

VERSION

version 0.76

SYNOPSIS

use Git::Raw;

# open the Git repository at $path
my $repo = Git::Raw::Repository -> open($path);

# create a new walker
my $log  = $repo -> walker;

# push the head of the repository
$log -> push_head;

# print all commit messages
while (my $commit = $log -> next) {
  say $commit -> message;
}

DESCRIPTION

A Git::Raw::Walker represents a graph walker used to walk through the repository's revisions (sort of like git log).

WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).

METHODS

create( $repo )

Create a new revision walker.

sorting( \@order )

Change the sorting mode when iterating through the repository's contents. Values for @order may be one or more of the following:

  • "none"

    Sort the repository contents in no particular ordering, that is, sorting is arbitrary, implementation-specific and subject to change at any time. (Default)

  • "topological"

    Sort the repository contents in topological order (parents before children). This sorting mode may be combined with time sorting.

  • "time"

    Sort the repository contents by commit time. This sorting mode may be combined with topological sorting.

  • "reverse"

    Iterate through the repository contents in reverse order. This sorting mode may be combined with any of the above.

push( $commit )

Push a Git::Raw::Commit to the list of commits to be used as roots when starting a revision walk.

push_glob( $glob )

Push references by $glob to the list of commits to be used as roots when starting a revision walk.

push_ref( $name )

Push a reference by $name to the list of commits to be used as roots when starting a revision walk.

push_head( )

Push HEAD of the repository to the list of commits to be used as roots when starting a revision walk.

push_range( $start, $end )

Push and hide the respective endpoints of the given range. $start and $end should be "commitish", that is, it should be a Git::Raw::Commit or Git::Raw::Reference object, or alternatively a commit id or commit id prefix.

push_range( $range )

Push and hide the respective endpoints of the given range. $range should be of the form "start_commit_id..end_commit_id".

hide( $commit )

Hide a Git::Raw::Commit and its ancestors from the walker.

hide_glob( $glob )

Hide references by $glob and all ancestors from the walker.

hide_ref( $name )

Hide a reference by $name and its ancestors from the walker.

hide_head( )

Hide HEAD of the repository and its ancestors from the walker.

next( )

Retrieve the next commit from the revision walk. Returns a Git::Raw::Commit object or undef if there are no commits.

all( )

Retrieve all commits. Returns a list of Git::Raw::Commit objects.

reset( )

Reset the revision walker (this is done automatically at the end of a walk).

AUTHOR

Alessandro Ghedini <alexbio@cpan.org>

LICENSE AND COPYRIGHT

Copyright 2012 Alessandro Ghedini.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.