rugged 0.99.0 → 1.0.0
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/CMakeLists.txt +1 -0
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +4 -37
- data/vendor/libgit2/cmake/Modules/SanitizeBool.cmake +20 -0
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +3 -0
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +3 -0
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +3 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +2 -0
- data/vendor/libgit2/deps/ntlmclient/compat.h +22 -0
- data/vendor/libgit2/include/git2/deprecated.h +7 -0
- data/vendor/libgit2/include/git2/repository.h +5 -4
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +109 -2
- data/vendor/libgit2/include/git2/version.h +4 -4
- data/vendor/libgit2/src/CMakeLists.txt +11 -13
- data/vendor/libgit2/src/blame.c +1 -1
- data/vendor/libgit2/src/cache.c +8 -4
- data/vendor/libgit2/src/indexer.c +3 -3
- data/vendor/libgit2/src/notes.c +6 -3
- data/vendor/libgit2/src/odb_pack.c +0 -1
- data/vendor/libgit2/src/pack-objects.c +3 -1
- data/vendor/libgit2/src/pack.c +21 -1
- data/vendor/libgit2/src/push.c +3 -2
- data/vendor/libgit2/src/refdb_fs.c +3 -0
- data/vendor/libgit2/src/repository.c +63 -50
- data/vendor/libgit2/src/revwalk.c +1 -1
- data/vendor/libgit2/src/streams/openssl.c +1 -1
- data/vendor/libgit2/src/transports/auth_ntlm.c +2 -2
- data/vendor/libgit2/src/transports/httpclient.c +13 -2
- data/vendor/libgit2/src/unix/posix.h +1 -1
- data/vendor/libgit2/src/win32/path_w32.c +28 -1
- data/vendor/libgit2/src/win32/path_w32.h +16 -1
- data/vendor/libgit2/src/win32/posix_w32.c +1 -2
- data/vendor/libgit2/src/worktree.c +44 -28
- metadata +4 -6
- data/vendor/libgit2/src/sha1_lookup.c +0 -35
- data/vendor/libgit2/src/sha1_lookup.h +0 -19
@@ -21,14 +21,8 @@ SET(LIBGIT2_INCLUDES
|
|
21
21
|
SET(LIBGIT2_SYSTEM_INCLUDES "")
|
22
22
|
SET(LIBGIT2_LIBS "")
|
23
23
|
|
24
|
-
# Installation paths
|
25
|
-
#
|
26
|
-
SET(BIN_INSTALL_DIR bin CACHE PATH "Where to install binaries to.")
|
27
|
-
SET(LIB_INSTALL_DIR lib CACHE PATH "Where to install libraries to.")
|
28
|
-
SET(INCLUDE_INSTALL_DIR include CACHE PATH "Where to install headers to.")
|
29
|
-
|
30
24
|
# Enable tracing
|
31
|
-
IF
|
25
|
+
IF(ENABLE_TRACE)
|
32
26
|
SET(GIT_TRACE 1)
|
33
27
|
ENDIF()
|
34
28
|
ADD_FEATURE_INFO(tracing GIT_TRACE "tracing support")
|
@@ -140,7 +134,7 @@ ELSEIF(REGEX_BACKEND STREQUAL "pcre2")
|
|
140
134
|
|
141
135
|
LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE2_INCLUDE_DIRS})
|
142
136
|
LIST(APPEND LIBGIT2_LIBS ${PCRE2_LIBRARIES})
|
143
|
-
LIST(APPEND LIBGIT2_PC_REQUIRES "libpcre2")
|
137
|
+
LIST(APPEND LIBGIT2_PC_REQUIRES "libpcre2-8")
|
144
138
|
ELSEIF(REGEX_BACKEND STREQUAL "pcre")
|
145
139
|
ADD_FEATURE_INFO(regex ON "using system PCRE")
|
146
140
|
SET(GIT_REGEX_PCRE 1)
|
@@ -300,6 +294,10 @@ FILE(GLOB SRC_GIT2 *.c *.h
|
|
300
294
|
streams/*.c streams/*.h
|
301
295
|
transports/*.c transports/*.h
|
302
296
|
xdiff/*.c xdiff/*.h)
|
297
|
+
IF(APPLE)
|
298
|
+
# The old Secure Transport API has been deprecated in macOS 10.15.
|
299
|
+
SET_SOURCE_FILES_PROPERTIES(streams/stransport.c PROPERTIES COMPILE_FLAGS -Wno-deprecated)
|
300
|
+
ENDIF()
|
303
301
|
|
304
302
|
# the xdiff dependency is not (yet) warning-free, disable warnings as
|
305
303
|
# errors for the xdiff sources until we've sorted them out
|
@@ -387,9 +385,9 @@ ENDIF ()
|
|
387
385
|
|
388
386
|
# Install
|
389
387
|
INSTALL(TARGETS git2
|
390
|
-
RUNTIME DESTINATION ${
|
391
|
-
LIBRARY DESTINATION ${
|
392
|
-
ARCHIVE DESTINATION ${
|
388
|
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
389
|
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
390
|
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
393
391
|
)
|
394
|
-
INSTALL(DIRECTORY ${libgit2_SOURCE_DIR}/include/git2 DESTINATION ${
|
395
|
-
INSTALL(FILES ${libgit2_SOURCE_DIR}/include/git2.h DESTINATION ${
|
392
|
+
INSTALL(DIRECTORY ${libgit2_SOURCE_DIR}/include/git2 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
393
|
+
INSTALL(FILES ${libgit2_SOURCE_DIR}/include/git2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
data/vendor/libgit2/src/blame.c
CHANGED
data/vendor/libgit2/src/cache.c
CHANGED
@@ -208,10 +208,14 @@ static void *cache_store(git_cache *cache, git_cached_obj *entry)
|
|
208
208
|
entry = stored_entry;
|
209
209
|
} else if (stored_entry->flags == GIT_CACHE_STORE_RAW &&
|
210
210
|
entry->flags == GIT_CACHE_STORE_PARSED) {
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
211
|
+
if (git_oidmap_set(cache->map, &entry->oid, entry) == 0) {
|
212
|
+
git_cached_obj_decref(stored_entry);
|
213
|
+
git_cached_obj_incref(entry);
|
214
|
+
} else {
|
215
|
+
git_cached_obj_decref(entry);
|
216
|
+
git_cached_obj_incref(stored_entry);
|
217
|
+
entry = stored_entry;
|
218
|
+
}
|
215
219
|
} else {
|
216
220
|
/* NO OP */
|
217
221
|
}
|
@@ -150,11 +150,11 @@ int git_indexer_new(
|
|
150
150
|
idx->progress_cb = opts.progress_cb;
|
151
151
|
idx->progress_payload = opts.progress_cb_payload;
|
152
152
|
idx->mode = mode ? mode : GIT_PACK_FILE_MODE;
|
153
|
-
git_hash_ctx_init(&idx->hash_ctx);
|
154
|
-
git_hash_ctx_init(&idx->trailer);
|
155
153
|
git_buf_init(&idx->entry_data, 0);
|
156
154
|
|
157
|
-
if ((error =
|
155
|
+
if ((error = git_hash_ctx_init(&idx->hash_ctx)) < 0 ||
|
156
|
+
(error = git_hash_ctx_init(&idx->trailer)) < 0 ||
|
157
|
+
(error = git_oidmap_new(&idx->expected_oids)) < 0)
|
158
158
|
goto cleanup;
|
159
159
|
|
160
160
|
idx->do_verify = opts.verify;
|
data/vendor/libgit2/src/notes.c
CHANGED
@@ -808,8 +808,11 @@ int git_note_next(
|
|
808
808
|
|
809
809
|
git_oid_cpy(note_id, &item->id);
|
810
810
|
|
811
|
-
if (
|
812
|
-
|
811
|
+
if ((error = process_entry_path(item->path, annotated_id)) < 0)
|
812
|
+
return error;
|
813
813
|
|
814
|
-
|
814
|
+
if ((error = git_iterator_advance(NULL, it)) < 0 && error != GIT_ITEROVER)
|
815
|
+
return error;
|
816
|
+
|
817
|
+
return 0;
|
815
818
|
}
|
@@ -374,7 +374,9 @@ static int write_object(
|
|
374
374
|
GIT_ERROR_CHECK_ALLOC(zbuf);
|
375
375
|
|
376
376
|
git_zstream_reset(&pb->zstream);
|
377
|
-
|
377
|
+
|
378
|
+
if ((error = git_zstream_set_input(&pb->zstream, data, data_len)) < 0)
|
379
|
+
goto done;
|
378
380
|
|
379
381
|
while (!git_zstream_done(&pb->zstream)) {
|
380
382
|
if ((error = git_zstream_get_output(zbuf, &zbuf_len, &pb->zstream)) < 0 ||
|
data/vendor/libgit2/src/pack.c
CHANGED
@@ -12,7 +12,6 @@
|
|
12
12
|
#include "mwindow.h"
|
13
13
|
#include "odb.h"
|
14
14
|
#include "oid.h"
|
15
|
-
#include "sha1_lookup.h"
|
16
15
|
|
17
16
|
/* Option to bypass checking existence of '.keep' files */
|
18
17
|
bool git_disable_pack_keep_file_checks = false;
|
@@ -1239,6 +1238,27 @@ int git_pack_foreach_entry(
|
|
1239
1238
|
return error;
|
1240
1239
|
}
|
1241
1240
|
|
1241
|
+
static int sha1_position(const void *table, size_t stride, unsigned lo,
|
1242
|
+
unsigned hi, const unsigned char *key)
|
1243
|
+
{
|
1244
|
+
const unsigned char *base = table;
|
1245
|
+
|
1246
|
+
while (lo < hi) {
|
1247
|
+
unsigned mi = (lo + hi) / 2;
|
1248
|
+
int cmp = git_oid__hashcmp(base + mi * stride, key);
|
1249
|
+
|
1250
|
+
if (!cmp)
|
1251
|
+
return mi;
|
1252
|
+
|
1253
|
+
if (cmp > 0)
|
1254
|
+
hi = mi;
|
1255
|
+
else
|
1256
|
+
lo = mi+1;
|
1257
|
+
}
|
1258
|
+
|
1259
|
+
return -((int)lo)-1;
|
1260
|
+
}
|
1261
|
+
|
1242
1262
|
static int pack_entry_find_offset(
|
1243
1263
|
off64_t *offset_out,
|
1244
1264
|
git_oid *found_oid,
|
data/vendor/libgit2/src/push.c
CHANGED
@@ -349,8 +349,9 @@ static int queue_objects(git_push *push)
|
|
349
349
|
if (git_oid_is_zero(&head->oid))
|
350
350
|
continue;
|
351
351
|
|
352
|
-
|
353
|
-
|
352
|
+
if ((error = git_revwalk_hide(rw, &head->oid)) < 0 &&
|
353
|
+
error != GIT_ENOTFOUND && error != GIT_EINVALIDSPEC && error != GIT_EPEEL)
|
354
|
+
goto on_error;
|
354
355
|
}
|
355
356
|
|
356
357
|
error = git_packbuilder_insert_walk(push->pb, rw);
|
@@ -2129,6 +2129,9 @@ int git_refdb_backend_fs(
|
|
2129
2129
|
backend = git__calloc(1, sizeof(refdb_fs_backend));
|
2130
2130
|
GIT_ERROR_CHECK_ALLOC(backend);
|
2131
2131
|
|
2132
|
+
if (git_refdb_init_backend(&backend->parent, GIT_REFDB_BACKEND_VERSION) < 0)
|
2133
|
+
goto fail;
|
2134
|
+
|
2132
2135
|
backend->repo = repository;
|
2133
2136
|
|
2134
2137
|
if (repository->gitdir) {
|
@@ -189,19 +189,25 @@ void git_repository_free(git_repository *repo)
|
|
189
189
|
*
|
190
190
|
* Open a repository object from its path
|
191
191
|
*/
|
192
|
-
static bool
|
192
|
+
static int is_valid_repository_path(bool *out, git_buf *repository_path, git_buf *common_path)
|
193
193
|
{
|
194
|
+
int error;
|
195
|
+
|
196
|
+
*out = false;
|
197
|
+
|
194
198
|
/* Check if we have a separate commondir (e.g. we have a
|
195
199
|
* worktree) */
|
196
200
|
if (git_path_contains_file(repository_path, GIT_COMMONDIR_FILE)) {
|
197
201
|
git_buf common_link = GIT_BUF_INIT;
|
198
|
-
git_buf_joinpath(&common_link, repository_path->ptr, GIT_COMMONDIR_FILE);
|
199
202
|
|
200
|
-
|
201
|
-
|
203
|
+
if ((error = git_buf_joinpath(&common_link, repository_path->ptr, GIT_COMMONDIR_FILE)) < 0 ||
|
204
|
+
(error = git_futils_readbuffer(&common_link, common_link.ptr)) < 0)
|
205
|
+
return error;
|
202
206
|
|
207
|
+
git_buf_rtrim(&common_link);
|
203
208
|
if (git_path_is_relative(common_link.ptr)) {
|
204
|
-
git_buf_joinpath(common_path, repository_path->ptr, common_link.ptr)
|
209
|
+
if ((error = git_buf_joinpath(common_path, repository_path->ptr, common_link.ptr)) < 0)
|
210
|
+
return error;
|
205
211
|
} else {
|
206
212
|
git_buf_swap(common_path, &common_link);
|
207
213
|
}
|
@@ -209,24 +215,26 @@ static bool valid_repository_path(git_buf *repository_path, git_buf *common_path
|
|
209
215
|
git_buf_dispose(&common_link);
|
210
216
|
}
|
211
217
|
else {
|
212
|
-
git_buf_set(common_path, repository_path->ptr, repository_path->size)
|
218
|
+
if ((error = git_buf_set(common_path, repository_path->ptr, repository_path->size)) < 0)
|
219
|
+
return error;
|
213
220
|
}
|
214
221
|
|
215
222
|
/* Make sure the commondir path always has a trailing * slash */
|
216
223
|
if (git_buf_rfind(common_path, '/') != (ssize_t)common_path->size - 1)
|
217
|
-
git_buf_putc(common_path, '/')
|
224
|
+
if ((error = git_buf_putc(common_path, '/')) < 0)
|
225
|
+
return error;
|
218
226
|
|
219
227
|
/* Ensure HEAD file exists */
|
220
228
|
if (git_path_contains_file(repository_path, GIT_HEAD_FILE) == false)
|
221
|
-
return
|
222
|
-
|
229
|
+
return 0;
|
223
230
|
/* Check files in common dir */
|
224
231
|
if (git_path_contains_dir(common_path, GIT_OBJECTS_DIR) == false)
|
225
|
-
return
|
232
|
+
return 0;
|
226
233
|
if (git_path_contains_dir(common_path, GIT_REFS_DIR) == false)
|
227
|
-
return
|
234
|
+
return 0;
|
228
235
|
|
229
|
-
|
236
|
+
*out = true;
|
237
|
+
return 0;
|
230
238
|
}
|
231
239
|
|
232
240
|
static git_repository *repository_alloc(void)
|
@@ -441,15 +449,15 @@ static int find_repo(
|
|
441
449
|
uint32_t flags,
|
442
450
|
const char *ceiling_dirs)
|
443
451
|
{
|
444
|
-
int error;
|
445
452
|
git_buf path = GIT_BUF_INIT;
|
446
453
|
git_buf repo_link = GIT_BUF_INIT;
|
447
454
|
git_buf common_link = GIT_BUF_INIT;
|
448
455
|
struct stat st;
|
449
456
|
dev_t initial_device = 0;
|
450
457
|
int min_iterations;
|
451
|
-
bool in_dot_git;
|
458
|
+
bool in_dot_git, is_valid;
|
452
459
|
size_t ceiling_offset = 0;
|
460
|
+
int error;
|
453
461
|
|
454
462
|
git_buf_clear(gitdir_path);
|
455
463
|
|
@@ -475,9 +483,8 @@ static int find_repo(
|
|
475
483
|
for (;;) {
|
476
484
|
if (!(flags & GIT_REPOSITORY_OPEN_NO_DOTGIT)) {
|
477
485
|
if (!in_dot_git) {
|
478
|
-
error = git_buf_joinpath(&path, path.ptr, DOT_GIT)
|
479
|
-
|
480
|
-
break;
|
486
|
+
if ((error = git_buf_joinpath(&path, path.ptr, DOT_GIT)) < 0)
|
487
|
+
goto out;
|
481
488
|
}
|
482
489
|
in_dot_git = !in_dot_git;
|
483
490
|
}
|
@@ -491,28 +498,33 @@ static int find_repo(
|
|
491
498
|
break;
|
492
499
|
|
493
500
|
if (S_ISDIR(st.st_mode)) {
|
494
|
-
if (
|
495
|
-
|
496
|
-
|
501
|
+
if ((error = is_valid_repository_path(&is_valid, &path, &common_link)) < 0)
|
502
|
+
goto out;
|
503
|
+
|
504
|
+
if (is_valid) {
|
505
|
+
if ((error = git_path_to_dir(&path)) < 0 ||
|
506
|
+
(error = git_buf_set(gitdir_path, path.ptr, path.size)) < 0)
|
507
|
+
goto out;
|
497
508
|
|
498
509
|
if (gitlink_path)
|
499
|
-
git_buf_attach(gitlink_path,
|
500
|
-
|
510
|
+
if ((error = git_buf_attach(gitlink_path, git_worktree__read_link(path.ptr, GIT_GITDIR_FILE), 0)) < 0)
|
511
|
+
goto out;
|
501
512
|
if (commondir_path)
|
502
513
|
git_buf_swap(&common_link, commondir_path);
|
503
514
|
|
504
515
|
break;
|
505
516
|
}
|
506
|
-
}
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
if (
|
517
|
+
} else if (S_ISREG(st.st_mode) && git__suffixcmp(path.ptr, "/" DOT_GIT) == 0) {
|
518
|
+
if ((error = read_gitfile(&repo_link, path.ptr)) < 0 ||
|
519
|
+
(error = is_valid_repository_path(&is_valid, &repo_link, &common_link)) < 0)
|
520
|
+
goto out;
|
521
|
+
|
522
|
+
if (is_valid) {
|
512
523
|
git_buf_swap(gitdir_path, &repo_link);
|
513
524
|
|
514
525
|
if (gitlink_path)
|
515
|
-
error = git_buf_put(gitlink_path, path.ptr, path.size)
|
526
|
+
if ((error = git_buf_put(gitlink_path, path.ptr, path.size)) < 0)
|
527
|
+
goto out;
|
516
528
|
if (commondir_path)
|
517
529
|
git_buf_swap(&common_link, commondir_path);
|
518
530
|
}
|
@@ -523,10 +535,8 @@ static int find_repo(
|
|
523
535
|
/* Move up one directory. If we're in_dot_git, we'll search the
|
524
536
|
* parent itself next. If we're !in_dot_git, we'll search .git
|
525
537
|
* in the parent directory next (added at the top of the loop). */
|
526
|
-
if (git_path_dirname_r(&path, path.ptr) < 0)
|
527
|
-
|
528
|
-
break;
|
529
|
-
}
|
538
|
+
if ((error = git_path_dirname_r(&path, path.ptr)) < 0)
|
539
|
+
goto out;
|
530
540
|
|
531
541
|
/* Once we've checked the directory (and .git if applicable),
|
532
542
|
* find the ceiling for a search. */
|
@@ -534,31 +544,28 @@ static int find_repo(
|
|
534
544
|
ceiling_offset = find_ceiling_dir_offset(path.ptr, ceiling_dirs);
|
535
545
|
|
536
546
|
/* Check if we should stop searching here. */
|
537
|
-
if (min_iterations == 0
|
538
|
-
|
539
|
-
|| (flags & GIT_REPOSITORY_OPEN_NO_SEARCH)))
|
547
|
+
if (min_iterations == 0 &&
|
548
|
+
(path.ptr[ceiling_offset] == 0 || (flags & GIT_REPOSITORY_OPEN_NO_SEARCH)))
|
540
549
|
break;
|
541
550
|
}
|
542
551
|
|
543
|
-
if (
|
552
|
+
if (workdir_path && !(flags & GIT_REPOSITORY_OPEN_BARE)) {
|
544
553
|
if (!git_buf_len(gitdir_path))
|
545
554
|
git_buf_clear(workdir_path);
|
546
|
-
else
|
547
|
-
|
548
|
-
|
549
|
-
}
|
550
|
-
if (git_buf_oom(workdir_path))
|
551
|
-
return -1;
|
555
|
+
else if ((error = git_path_dirname_r(workdir_path, path.ptr)) < 0 ||
|
556
|
+
(error = git_path_to_dir(workdir_path)) < 0)
|
557
|
+
goto out;
|
552
558
|
}
|
553
559
|
|
554
560
|
/* If we didn't find the repository, and we don't have any other error
|
555
561
|
* to report, report that. */
|
556
|
-
if (!git_buf_len(gitdir_path)
|
557
|
-
git_error_set(GIT_ERROR_REPOSITORY,
|
558
|
-
"could not find repository from '%s'", start_path);
|
562
|
+
if (!git_buf_len(gitdir_path)) {
|
563
|
+
git_error_set(GIT_ERROR_REPOSITORY, "could not find repository from '%s'", start_path);
|
559
564
|
error = GIT_ENOTFOUND;
|
565
|
+
goto out;
|
560
566
|
}
|
561
567
|
|
568
|
+
out:
|
562
569
|
git_buf_dispose(&path);
|
563
570
|
git_buf_dispose(&repo_link);
|
564
571
|
git_buf_dispose(&common_link);
|
@@ -569,14 +576,16 @@ int git_repository_open_bare(
|
|
569
576
|
git_repository **repo_ptr,
|
570
577
|
const char *bare_path)
|
571
578
|
{
|
572
|
-
int error;
|
573
579
|
git_buf path = GIT_BUF_INIT, common_path = GIT_BUF_INIT;
|
574
580
|
git_repository *repo = NULL;
|
581
|
+
bool is_valid;
|
582
|
+
int error;
|
575
583
|
|
576
|
-
if ((error = git_path_prettify_dir(&path, bare_path, NULL)) < 0
|
584
|
+
if ((error = git_path_prettify_dir(&path, bare_path, NULL)) < 0 ||
|
585
|
+
(error = is_valid_repository_path(&is_valid, &path, &common_path)) < 0)
|
577
586
|
return error;
|
578
587
|
|
579
|
-
if (!
|
588
|
+
if (!is_valid) {
|
580
589
|
git_buf_dispose(&path);
|
581
590
|
git_buf_dispose(&common_path);
|
582
591
|
git_error_set(GIT_ERROR_REPOSITORY, "path is not a repository: %s", bare_path);
|
@@ -2055,6 +2064,7 @@ int git_repository_init_ext(
|
|
2055
2064
|
git_buf repo_path = GIT_BUF_INIT, wd_path = GIT_BUF_INIT,
|
2056
2065
|
common_path = GIT_BUF_INIT, head_path = GIT_BUF_INIT;
|
2057
2066
|
const char *wd;
|
2067
|
+
bool is_valid;
|
2058
2068
|
int error;
|
2059
2069
|
|
2060
2070
|
assert(out && given_repo && opts);
|
@@ -2066,7 +2076,10 @@ int git_repository_init_ext(
|
|
2066
2076
|
|
2067
2077
|
wd = (opts->flags & GIT_REPOSITORY_INIT_BARE) ? NULL : git_buf_cstr(&wd_path);
|
2068
2078
|
|
2069
|
-
if (
|
2079
|
+
if ((error = is_valid_repository_path(&is_valid, &repo_path, &common_path)) < 0)
|
2080
|
+
goto out;
|
2081
|
+
|
2082
|
+
if (is_valid) {
|
2070
2083
|
if ((opts->flags & GIT_REPOSITORY_INIT_NO_REINIT) != 0) {
|
2071
2084
|
git_error_set(GIT_ERROR_REPOSITORY,
|
2072
2085
|
"attempt to reinitialize '%s'", given_repo);
|
@@ -50,10 +50,10 @@ static int ntlm_set_credentials(http_auth_ntlm_context *ctx, git_credential *_cr
|
|
50
50
|
cred = (git_credential_userpass_plaintext *)_cred;
|
51
51
|
|
52
52
|
if ((sep = strchr(cred->username, '\\')) != NULL) {
|
53
|
-
domain =
|
53
|
+
domain = git__strndup(cred->username, (sep - cred->username));
|
54
54
|
GIT_ERROR_CHECK_ALLOC(domain);
|
55
55
|
|
56
|
-
domainuser =
|
56
|
+
domainuser = git__strdup(sep + 1);
|
57
57
|
GIT_ERROR_CHECK_ALLOC(domainuser);
|
58
58
|
|
59
59
|
username = domainuser;
|