diff options
Diffstat (limited to 'cmd/git-lfs-authenticate')
-rw-r--r-- | cmd/git-lfs-authenticate/main.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/cmd/git-lfs-authenticate/main.c b/cmd/git-lfs-authenticate/main.c index 71481e9..a7ec031 100644 --- a/cmd/git-lfs-authenticate/main.c +++ b/cmd/git-lfs-authenticate/main.c | |||
@@ -65,8 +65,6 @@ void checkrepopath(const char *path) { | |||
65 | die("Bad repository name: Is unresolved path"); | 65 | die("Bad repository name: Is unresolved path"); |
66 | if (strlen(path) > 100) | 66 | if (strlen(path) > 100) |
67 | die("Bad repository name: Longer than 100 characters"); | 67 | die("Bad repository name: Longer than 100 characters"); |
68 | if (hassuffix(path, "/")) | ||
69 | die("Bad repositry name: Unexpected trailing slash"); | ||
70 | if (hasprefix(path, "/")) | 68 | if (hasprefix(path, "/")) |
71 | die("Bad repository name: Unexpected absolute path"); | 69 | die("Bad repository name: Unexpected absolute path"); |
72 | if (!hassuffix(path, ".git")) | 70 | if (!hassuffix(path, ".git")) |
@@ -152,6 +150,10 @@ void u64tobe(uint64_t x, uint8_t b[8]) { | |||
152 | b[7] = (uint8_t)(x >> 0); | 150 | b[7] = (uint8_t)(x >> 0); |
153 | } | 151 | } |
154 | 152 | ||
153 | void *memcat(void *dest, const void *src, size_t n) { | ||
154 | return memcpy(dest, src, n) + n; | ||
155 | } | ||
156 | |||
155 | #define MAX_TAG_SIZE EVP_MAX_MD_SIZE | 157 | #define MAX_TAG_SIZE EVP_MAX_MD_SIZE |
156 | 158 | ||
157 | typedef struct taginfo { | 159 | typedef struct taginfo { |
@@ -161,10 +163,6 @@ typedef struct taginfo { | |||
161 | const int64_t expiresat_s; | 163 | const int64_t expiresat_s; |
162 | } taginfo_t; | 164 | } taginfo_t; |
163 | 165 | ||
164 | void *memcat(void *dest, const void *src, size_t n) { | ||
165 | return memcpy(dest, src, n) + n; | ||
166 | } | ||
167 | |||
168 | void maketag(const taginfo_t info, uint8_t key[KEYSIZE], uint8_t dest[MAX_TAG_SIZE], uint32_t *len) { | 166 | void maketag(const taginfo_t info, uint8_t key[KEYSIZE], uint8_t dest[MAX_TAG_SIZE], uint32_t *len) { |
169 | uint8_t expiresat_b[8]; | 167 | uint8_t expiresat_b[8]; |
170 | u64tobe(info.expiresat_s, expiresat_b); | 168 | u64tobe(info.expiresat_s, expiresat_b); |
@@ -247,7 +245,8 @@ int main(int argc, char *argv[]) { | |||
247 | char hextag[MAX_HEXTAG_STRLEN + 1]; | 245 | char hextag[MAX_HEXTAG_STRLEN + 1]; |
248 | makehextag(taginfo, key, hextag); | 246 | makehextag(taginfo, key, hextag); |
249 | 247 | ||
250 | printf("{\"header\":{\"Authorization\":\"Gitolfs3-Hmac-Sha256 %s\"},\"expires_in\":%ld,\"href\":\"", hextag, expiresin_s); | 248 | printf("{\"header\":{\"Authorization\":\"Gitolfs3-Hmac-Sha256 %s\"}," |
249 | "\"expires_in\":%ld,\"href\":\"", hextag, expiresin_s); | ||
251 | printescjson(hrefbase); | 250 | printescjson(hrefbase); |
252 | printescjson(repopath); | 251 | printescjson(repopath); |
253 | printf("/info/lfs?p=1&te=%ld\"}\n", expiresat_s); | 252 | printf("/info/lfs?p=1&te=%ld\"}\n", expiresat_s); |