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::Stash - Git stash class

VERSION

version 0.79

DESCRIPTION

Helper class to manage stashes.

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

METHODS

apply( $repo, $index, [\%stash_apply_opts] )

Apply a single stashed state from the stash list. If local changes in the working directory conflict with changes in the stash this function will throw a Git::Raw::Error exception with a Git::Raw::Error::EMERGECONFLICT error code. If you are restoring untracked files or ignored files and there is a conflict when applying the modified files, then those files will remain in the working directory. Valid fields for %stash_apply_opts include:

  • "checkout_opts"

    See Git::Raw::Repository->checkout().

  • "flags"

    • "reinstate_index"

      Try to reinstate not only the working tree's changes, but also the index's changes.

  • "callbacks"

    • "apply_progress"

      Progress notification function. The callback receives a single $progress value which may be any constant provided by Git::Raw::Stash::Progress.

pop( $repo, $index, [\%stash_apply_opts] )

Apply a single stashed state from the stash list and remove it from the list if successful.

save( $repo, $stasher, $msg [, \@opts] )

Save the local modifications to a new stash. Non-default options may be specified by providing the optional @opts argument. If files were stashed, this function will return a Git::Raw::Commit object, otherwise undef.

Valid fields for the @opts array are:

  • "keep_index"

    All changes already added to the index are left intact in the working directory. The default is to also stash changes in the index.

  • "include_untracked"

    All untracked files are also stashed and then cleaned up from the working directory. The default is to leave untracked files in the working directory.

  • "include_ignored"

    All ignored files are also stashed and then cleaned up up from the working directory. The default is to leave ignored files in the working directory.

foreach( $repo, $callback )

Run $callback for every stash in the repo. The callback receives three arguments: the stash $index, the stash $message and the stash $commit, a Git::Raw::Commit object. A non-zero return value will stop the loop.

drop( $repo, $index )

Remove a single stash from the stash list.

AUTHOR

Alessandro Ghedini <alexbio@cpan.org>

Jacques Germishuys <jacquesg@striata.com>

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.