rugged 0.28.2 → 0.28.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|