fileio: add READ_FULL_FILE_UNBASE64 flag for read_full_file_full()
This commit is contained in:
parent
50caae7b92
commit
07d8c0eb1e
|
@ -17,6 +17,7 @@
|
|||
#include "fd-util.h"
|
||||
#include "fileio.h"
|
||||
#include "fs-util.h"
|
||||
#include "hexdecoct.h"
|
||||
#include "log.h"
|
||||
#include "macro.h"
|
||||
#include "missing.h"
|
||||
|
@ -278,6 +279,7 @@ int read_full_stream_full(
|
|||
|
||||
assert(f);
|
||||
assert(ret_contents);
|
||||
assert(!(flags & READ_FULL_FILE_UNBASE64) || ret_size);
|
||||
|
||||
n_next = LINE_MAX; /* Start size */
|
||||
|
||||
|
@ -354,6 +356,12 @@ int read_full_stream_full(
|
|||
n_next = MIN(n * 2, READ_FULL_BYTES_MAX);
|
||||
}
|
||||
|
||||
if (flags & READ_FULL_FILE_UNBASE64) {
|
||||
buf[l++] = 0;
|
||||
r = unbase64mem_full(buf, l, flags & READ_FULL_FILE_SECURE, (void **) ret_contents, ret_size);
|
||||
goto finalize;
|
||||
}
|
||||
|
||||
if (!ret_size) {
|
||||
/* Safety check: if the caller doesn't want to know the size of what we just read it will rely on the
|
||||
* trailing NUL byte. But if there's an embedded NUL byte, then we should refuse operation as otherwise
|
||||
|
|
|
@ -29,7 +29,8 @@ typedef enum {
|
|||
} WriteStringFileFlags;
|
||||
|
||||
typedef enum {
|
||||
READ_FULL_FILE_SECURE = 1 << 0,
|
||||
READ_FULL_FILE_SECURE = 1 << 0,
|
||||
READ_FULL_FILE_UNBASE64 = 1 << 1,
|
||||
} ReadFullFileFlags;
|
||||
|
||||
int write_string_stream_ts(FILE *f, const char *line, WriteStringFileFlags flags, struct timespec *ts);
|
||||
|
|
Loading…
Reference in New Issue