diff options
Diffstat (limited to 'cmd')
| -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); |