Read line from stdin (uses tal allocation) */
| 405 | |
| 406 | /* Read line from stdin (uses tal allocation) */ |
| 407 | static const char *read_line(const tal_t *ctx) |
| 408 | { |
| 409 | char *line = NULL; |
| 410 | size_t size = 0; |
| 411 | |
| 412 | if (getline(&line, &size, stdin) < 0) { |
| 413 | free(line); |
| 414 | return NULL; |
| 415 | } |
| 416 | |
| 417 | /* Strip newline */ |
| 418 | size_t len = strlen(line); |
| 419 | if (strends(line, "\n")) |
| 420 | len--; |
| 421 | |
| 422 | /* Convert to tal string */ |
| 423 | char *result = tal_strndup(ctx, line, len); |
| 424 | free(line); |
| 425 | return result; |
| 426 | } |
| 427 | |
| 428 | const char *read_stdin_pass(const tal_t *ctx, enum hsm_secret_error *err) |
| 429 | { |
no test coverage detected