rugged 0.28.2 → 0.28.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/include/git2/version.h +2 -2
- data/vendor/libgit2/src/commit_list.c +6 -2
- data/vendor/libgit2/src/config.c +8 -1
- data/vendor/libgit2/src/path.c +77 -0
- data/vendor/libgit2/src/path.h +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 446cc7095e381c2b5000771a5dd6d8ebccb2f73bd932354dd3e65c13b4b46110
|
4
|
+
data.tar.gz: 6233da45db5c54c03adfcfc69b403c3179cc762b0b2f8d144684532b56dc436c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a4cd776895a8cf25cfc30fa3e49cccf72e85482bf865732b68c514464046c762b2f9a8467c47cfcbde748335eac53bc15ff3d1970504ecb96df327c66c0c746
|
7
|
+
data.tar.gz: 52efde64ee141187e7dc623cf3cd8362dc8b94c82f3fabeb8314f346a8a4eb93e66566ec5da3c8e1df6175889d373e2a400aad07d0edaa8ae60d0fad1fc45ee6
|
data/lib/rugged/version.rb
CHANGED
@@ -7,10 +7,10 @@
|
|
7
7
|
#ifndef INCLUDE_git_version_h__
|
8
8
|
#define INCLUDE_git_version_h__
|
9
9
|
|
10
|
-
#define LIBGIT2_VERSION "0.28.
|
10
|
+
#define LIBGIT2_VERSION "0.28.3"
|
11
11
|
#define LIBGIT2_VER_MAJOR 0
|
12
12
|
#define LIBGIT2_VER_MINOR 28
|
13
|
-
#define LIBGIT2_VER_REVISION
|
13
|
+
#define LIBGIT2_VER_REVISION 3
|
14
14
|
#define LIBGIT2_VER_PATCH 0
|
15
15
|
|
16
16
|
#define LIBGIT2_SOVERSION 28
|
@@ -69,11 +69,15 @@ static int commit_error(git_commit_list_node *commit, const char *msg)
|
|
69
69
|
static git_commit_list_node **alloc_parents(
|
70
70
|
git_revwalk *walk, git_commit_list_node *commit, size_t n_parents)
|
71
71
|
{
|
72
|
+
size_t bytes;
|
73
|
+
|
72
74
|
if (n_parents <= PARENTS_PER_COMMIT)
|
73
75
|
return (git_commit_list_node **)((char *)commit + sizeof(git_commit_list_node));
|
74
76
|
|
75
|
-
|
76
|
-
|
77
|
+
if (git__multiply_sizet_overflow(&bytes, n_parents, sizeof(git_commit_list_node *)))
|
78
|
+
return NULL;
|
79
|
+
|
80
|
+
return (git_commit_list_node **)git_pool_malloc(&walk->commit_pool, bytes);
|
77
81
|
}
|
78
82
|
|
79
83
|
|
data/vendor/libgit2/src/config.c
CHANGED
@@ -1111,8 +1111,15 @@ int git_config_find_system(git_buf *path)
|
|
1111
1111
|
|
1112
1112
|
int git_config_find_programdata(git_buf *path)
|
1113
1113
|
{
|
1114
|
+
int ret;
|
1115
|
+
|
1114
1116
|
git_buf_sanitize(path);
|
1115
|
-
|
1117
|
+
ret = git_sysdir_find_programdata_file(path,
|
1118
|
+
GIT_CONFIG_FILENAME_PROGRAMDATA);
|
1119
|
+
if (ret != GIT_OK)
|
1120
|
+
return ret;
|
1121
|
+
|
1122
|
+
return git_path_validate_system_file_ownership(path->ptr);
|
1116
1123
|
}
|
1117
1124
|
|
1118
1125
|
int git_config__global_location(git_buf *buf)
|
data/vendor/libgit2/src/path.c
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
#include "win32/w32_buffer.h"
|
15
15
|
#include "win32/w32_util.h"
|
16
16
|
#include "win32/version.h"
|
17
|
+
#include <AclAPI.h>
|
17
18
|
#else
|
18
19
|
#include <dirent.h>
|
19
20
|
#endif
|
@@ -1909,3 +1910,79 @@ extern int git_path_is_gitfile(const char *path, size_t pathlen, git_path_gitfil
|
|
1909
1910
|
return -1;
|
1910
1911
|
}
|
1911
1912
|
}
|
1913
|
+
|
1914
|
+
int git_path_validate_system_file_ownership(const char *path)
|
1915
|
+
{
|
1916
|
+
#ifndef GIT_WIN32
|
1917
|
+
GIT_UNUSED(path);
|
1918
|
+
return GIT_OK;
|
1919
|
+
#else
|
1920
|
+
git_win32_path buf;
|
1921
|
+
PSID owner_sid;
|
1922
|
+
PSECURITY_DESCRIPTOR descriptor = NULL;
|
1923
|
+
HANDLE token;
|
1924
|
+
TOKEN_USER *info = NULL;
|
1925
|
+
DWORD err, len;
|
1926
|
+
int ret;
|
1927
|
+
|
1928
|
+
if (git_win32_path_from_utf8(buf, path) < 0)
|
1929
|
+
return -1;
|
1930
|
+
|
1931
|
+
err = GetNamedSecurityInfoW(buf, SE_FILE_OBJECT,
|
1932
|
+
OWNER_SECURITY_INFORMATION |
|
1933
|
+
DACL_SECURITY_INFORMATION,
|
1934
|
+
&owner_sid, NULL, NULL, NULL, &descriptor);
|
1935
|
+
|
1936
|
+
if (err == ERROR_FILE_NOT_FOUND || err == ERROR_PATH_NOT_FOUND) {
|
1937
|
+
ret = GIT_ENOTFOUND;
|
1938
|
+
goto cleanup;
|
1939
|
+
}
|
1940
|
+
|
1941
|
+
if (err != ERROR_SUCCESS) {
|
1942
|
+
git_error_set(GIT_ERROR_OS, "failed to get security information");
|
1943
|
+
ret = GIT_ERROR;
|
1944
|
+
goto cleanup;
|
1945
|
+
}
|
1946
|
+
|
1947
|
+
if (!IsValidSid(owner_sid)) {
|
1948
|
+
git_error_set(GIT_ERROR_INVALID, "programdata configuration file owner is unknown");
|
1949
|
+
ret = GIT_ERROR;
|
1950
|
+
goto cleanup;
|
1951
|
+
}
|
1952
|
+
|
1953
|
+
if (IsWellKnownSid(owner_sid, WinBuiltinAdministratorsSid) ||
|
1954
|
+
IsWellKnownSid(owner_sid, WinLocalSystemSid)) {
|
1955
|
+
ret = GIT_OK;
|
1956
|
+
goto cleanup;
|
1957
|
+
}
|
1958
|
+
|
1959
|
+
/* Obtain current user's SID */
|
1960
|
+
if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token) &&
|
1961
|
+
!GetTokenInformation(token, TokenUser, NULL, 0, &len)) {
|
1962
|
+
info = git__malloc(len);
|
1963
|
+
GIT_ERROR_CHECK_ALLOC(info);
|
1964
|
+
if (!GetTokenInformation(token, TokenUser, info, len, &len)) {
|
1965
|
+
git__free(info);
|
1966
|
+
info = NULL;
|
1967
|
+
}
|
1968
|
+
}
|
1969
|
+
|
1970
|
+
/*
|
1971
|
+
* If the file is owned by the same account that is running the current
|
1972
|
+
* process, it's okay to read from that file.
|
1973
|
+
*/
|
1974
|
+
if (info && EqualSid(owner_sid, info->User.Sid))
|
1975
|
+
ret = GIT_OK;
|
1976
|
+
else {
|
1977
|
+
git_error_set(GIT_ERROR_INVALID, "programdata configuration file owner is not valid");
|
1978
|
+
ret = GIT_ERROR;
|
1979
|
+
}
|
1980
|
+
free(info);
|
1981
|
+
|
1982
|
+
cleanup:
|
1983
|
+
if (descriptor)
|
1984
|
+
LocalFree(descriptor);
|
1985
|
+
|
1986
|
+
return ret;
|
1987
|
+
#endif
|
1988
|
+
}
|
data/vendor/libgit2/src/path.h
CHANGED
@@ -647,4 +647,16 @@ extern bool git_path_isvalid(
|
|
647
647
|
*/
|
648
648
|
int git_path_normalize_slashes(git_buf *out, const char *path);
|
649
649
|
|
650
|
+
/**
|
651
|
+
* Validate a system file's ownership
|
652
|
+
*
|
653
|
+
* Verify that the file in question is owned by an administrator or system
|
654
|
+
* account, or at least by the current user.
|
655
|
+
*
|
656
|
+
* This function returns 0 if successful. If the file is not owned by any of
|
657
|
+
* these, or any other if there have been problems determining the file
|
658
|
+
* ownership, it returns -1.
|
659
|
+
*/
|
660
|
+
int git_path_validate_system_file_ownership(const char *path);
|
661
|
+
|
650
662
|
#endif
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rugged
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.28.
|
4
|
+
version: 0.28.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Chacon
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-08-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|