X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=crypto-keygen-standalone.c;h=d9206915a775453043d36bc3817e9f0fccd362da;hp=17b825d214854499d0f6f0e37c5e7e8f77d251ec;hb=9b793d68226cc30e873aa027ffc74c0fc98c5514;hpb=e4e06ca028a8aa4d33db30946a8909a86c141f99 diff --git a/crypto-keygen-standalone.c b/crypto-keygen-standalone.c index 17b825d2..d9206915 100644 --- a/crypto-keygen-standalone.c +++ b/crypto-keygen-standalone.c @@ -97,7 +97,10 @@ void file2buf(const char *fn, char **data, size_t *datasize) *data = NULL; *datasize = 0; size_t n = 0, dn = 0; - f = fopen(fn, "rb"); + if(!strncmp(fn, "/dev/fd/", 8)) + f = fdopen(atoi(fn + 8), "rb"); + else + f = fopen(fn, "rb"); if(!f) { return; @@ -108,6 +111,7 @@ void file2buf(const char *fn, char **data, size_t *datasize) if(!*data) { *datasize = 0; + fclose(f); return; } dn = fread(*data + n, 1, *datasize - n, f); @@ -122,7 +126,10 @@ void file2buf(const char *fn, char **data, size_t *datasize) int buf2file(const char *fn, const char *data, size_t n) { FILE *f; - f = fopen(fn, "wb"); + if(!strncmp(fn, "/dev/fd/", 8)) + f = fdopen(atoi(fn + 8), "wb"); + else + f = fopen(fn, "wb"); if(!f) return 0; n = fwrite(data, n, 1, f); @@ -667,7 +674,6 @@ int main(int argc, char **argv) CHECK(d0_blind_id_fingerprint64_public_id(ctx, fp64, &fp64size)); printf("%d\n", (int)status); printf("%.*s\n", (int)fp64size, fp64); - buf2file(outfile, databuf_out, databufsize_out); if(outfile2) {