diff --git a/.travis.yml b/.travis.yml index 22aadd5..72f8f1b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ env: LIBGIT2=~/libgit2/_install/ LD_LIBRARY_PATH=~/libgit2/_install/lib before_install: - sudo apt-get install cmake - - pip install cffi==1.9.1 + - pip install cffi - "./.travis.sh" script: diff --git a/pygit2/repository.py b/pygit2/repository.py index 9377aa2..472f4ff 100644 --- a/pygit2/repository.py +++ b/pygit2/repository.py @@ -692,7 +692,11 @@ class BaseRepository(_Repository): if describe_strategy is not None: options.describe_strategy = describe_strategy if pattern: - options.pattern = ffi.new('char[]', to_bytes(pattern)) + # The returned pointer object has ownership on the allocated + # memory. Make sure it is kept alive until git_describe_commit() or + # git_describe_workdir() are called below. + pattern_char = ffi.new('char[]', to_bytes(pattern)) + options.pattern = pattern_char if only_follow_first_parent is not None: options.only_follow_first_parent = only_follow_first_parent if show_commit_oid_as_fallback is not None: diff --git a/setup.py b/setup.py index f4a9f8c..18d3eb0 100644 --- a/setup.py +++ b/setup.py @@ -203,8 +203,8 @@ setup(name='pygit2', long_description=long_description, packages=['pygit2'], package_data={'pygit2': ['decl.h']}, - setup_requires=['cffi<1.10'], - install_requires=['cffi<1.10', 'six'], + setup_requires=['cffi'], + install_requires=['cffi', 'six'], zip_safe=False, cmdclass=cmdclass, **extra_args)