1
0
mirror of https://github.com/docker/docker-credential-helpers.git synced 2026-06-28 15:21:29 +05:30

Compare commits

...

10 Commits

Author SHA1 Message Date
Guillaume Rose 54f0238b6b Merge pull request #157 from guillaumerose/bump
Bump to 0.6.3
2019-07-16 13:54:57 +02:00
Guillaume Rose 2bf42cfd47 Bump to 0.6.3
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-07-16 10:46:07 +02:00
Guillaume Rose 1c9f7ede70 Merge pull request from GHSA-g9w7-h2f5-5vp2
Fix a double free in the List functions
2019-07-16 09:57:38 +02:00
Justin Cormack 87c80bfba5 Fix a double free in the List functions
The code was set up so that it would free the individual items and the data
in `freeListData`, but there was already a Go `defer` to free the data item,
resulting in a double free.

Remove the `free` in `freeListData` and leave the original one.

In addition, move the `defer` for freeing the list data before the error
check, so that the data is also free in the error case. This just removes
a minor leak.

This vulnerability was discovered by:
Jasiel Spelman of Trend Micro Zero Day Initiative and Trend Micro Team Nebula

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2019-07-01 14:41:30 +01:00
Silvin Lubecki 680ca48e6d Merge pull request #153 from thaJeztah/merge_0.6.2
Merge 'v0.6.2' to master
2019-06-20 14:53:21 +02:00
Sebastiaan van Stijn f6d4261609 Merge 'v0.6.2' to master
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-06-20 11:51:07 +02:00
Guillaume Rose f755519945 Merge pull request #148 from guillaumerose/jenkinsfile
Add Jenkinsfile
2019-05-07 08:12:18 -07:00
Guillaume Rose 11d9f9dba7 Add Jenkinsfile
Signed-off-by: Guillaume Rose <guillaume.rose@docker.com>
2019-05-07 16:04:36 +02:00
Ulrich VACHON beda055c57 Merge pull request #145 from ulrich/bump-to-v0.6.2
Bump version to 0.6.2
2019-05-02 12:50:58 +02:00
Ulrich VACHON 22b8706efa Bump version to 0.6.2
Signed-off-by: Ulrich VACHON <ulrich.vachon@docker.com>
2019-05-02 12:41:03 +02:00
6 changed files with 86 additions and 8 deletions
Vendored
+81
View File
@@ -0,0 +1,81 @@
pipeline {
agent none
options {
checkoutToSubdirectory('src/github.com/docker/docker-credential-helpers')
}
stages {
stage('build') {
parallel {
stage('linux') {
agent {
kubernetes {
label 'declarative'
containerTemplate {
name 'golang'
image 'golang:1.12.4'
ttyEnabled true
command 'cat'
}
}
}
environment {
GOPATH = pwd()
PATH = "/usr/local/go/bin:${GOPATH}/bin:$PATH"
}
steps {
container('golang') {
dir('src/github.com/docker/docker-credential-helpers') {
sh 'apt-get update && apt-get install -y libsecret-1-dev pass'
sh 'make deps fmt lint test'
sh 'make pass secretservice'
archiveArtifacts 'bin/docker-credential-*'
}
}
}
}
stage('mac') {
agent {
label 'mac-build && go1.12.4'
}
environment {
PATH = "/usr/local/go/bin:${GOPATH}/bin:$PATH"
GOPATH = pwd()
}
steps {
dir('src/github.com/docker/docker-credential-helpers') {
sh 'make deps fmt lint test'
sh 'make osxcodesign'
archiveArtifacts 'bin/docker-credential-*'
}
}
}
stage('windows') {
agent {
label 'win-build && go1.12.4'
}
environment {
GOPATH = pwd()
PATH = "${pwd()}/bin;$PATH"
PFX = credentials('windows-build-pfx-sanitize')
PFXPASSWORD = credentials('windows-build-pfx-password')
}
steps {
dir('src/github.com/docker/docker-credential-helpers') {
sh 'echo ${PFX} | base64 -d > pfx'
sh 'make deps fmt lint test'
sh 'make wincred'
bat """ "C:\\Program Files (x86)\\Windows Kits\\10\\bin\\x86\\signtool.exe" sign /fd SHA256 /a /f pfx /p ${PFXPASSWORD} /d Docker /du https://www.docker.com /t http://timestamp.verisign.com/scripts/timestamp.dll bin\\docker-credential-wincred.exe """
archiveArtifacts 'bin/docker-credential-*'
}
}
post {
always {
sh 'rm -f pfx'
}
}
}
}
}
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
package credentials
// Version holds a string describing the current version
const Version = "0.6.2"
const Version = "0.6.3"
-1
View File
@@ -224,5 +224,4 @@ void freeListData(char *** data, unsigned int length) {
for(int i=0; i<length; i++) {
free((*data)[i]);
}
free(*data);
}
+2 -3
View File
@@ -109,6 +109,8 @@ func (h Osxkeychain) List() (map[string]string, error) {
defer C.free(unsafe.Pointer(acctsC))
var listLenC C.uint
errMsg := C.keychain_list(credsLabelC, &pathsC, &acctsC, &listLenC)
defer C.freeListData(&pathsC, listLenC)
defer C.freeListData(&acctsC, listLenC)
if errMsg != nil {
defer C.free(unsafe.Pointer(errMsg))
goMsg := C.GoString(errMsg)
@@ -119,9 +121,6 @@ func (h Osxkeychain) List() (map[string]string, error) {
return nil, errors.New(goMsg)
}
defer C.freeListData(&pathsC, listLenC)
defer C.freeListData(&acctsC, listLenC)
var listLen int
listLen = int(listLenC)
pathTmp := (*[1 << 30]*C.char)(unsafe.Pointer(pathsC))[:listLen:listLen]
-1
View File
@@ -158,5 +158,4 @@ void freeListData(char *** data, unsigned int length) {
for(i=0; i<length; i++) {
free((*data)[i]);
}
free(*data);
}
+2 -2
View File
@@ -92,12 +92,12 @@ func (h Secretservice) List() (map[string]string, error) {
defer C.free(unsafe.Pointer(acctsC))
var listLenC C.uint
err := C.list(credsLabelC, &pathsC, &acctsC, &listLenC)
defer C.freeListData(&pathsC, listLenC)
defer C.freeListData(&acctsC, listLenC)
if err != nil {
defer C.g_error_free(err)
return nil, errors.New("Error from list function in secretservice_linux.c likely due to error in secretservice library")
}
defer C.freeListData(&pathsC, listLenC)
defer C.freeListData(&acctsC, listLenC)
resp := make(map[string]string)