aboutsummaryrefslogtreecommitdiff
path: root/qemu-img.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-05-22 17:20:09 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-05-22 17:20:09 +0100
commit0d2ed6039cf86fe3a78671e32b5e3eb17d725762 (patch)
tree96ced81e7026fb89b0e6dda603a2a757f538fe70 /qemu-img.c
parentbb2fa17f182ee0b45b53474f76679944fc891f04 (diff)
parent4120201d2fcfc24404fe6eb6b761b66bc35bca16 (diff)
downloadqemu-0d2ed6039cf86fe3a78671e32b5e3eb17d725762.zip
qemu-0d2ed6039cf86fe3a78671e32b5e3eb17d725762.tar.gz
qemu-0d2ed6039cf86fe3a78671e32b5e3eb17d725762.tar.bz2
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
Block layer core and image format patches # gpg: Signature made Fri May 22 16:21:03 2015 BST using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" * remotes/kevin/tags/for-upstream: (22 commits) MAINTAINERS: Split "Block QAPI, monitor, command line" off core MAINTAINERS: Add header files to Block Layer Core section tests: add test case for encrypted qcow2 read/write qemu-io: prompt for encryption keys when required util: allow \n to terminate password input util: move read_password method out of qemu-img into osdep/oslib qcow2/qcow: protect against uninitialized encryption key qemu-iotests: Make debugging python tests easier qemu-iotests: qemu-img info on afl VMDK image with a huge capacity block: Detect multiplication overflow in bdrv_getlength qemu-io: Use getopt() correctly qcow2: style fixes in qcow2-cache.c qcow2: make qcow2_cache_put() a void function qcow2: use a hash to look for entries in the L2 cache qcow2: remove qcow2_cache_find_entry_to_replace() qcow2: use an LRU algorithm to replace entries from the L2 cache qcow2: simplify qcow2_cache_put() and qcow2_cache_entry_mark_dirty() qcow2: use one single memory block for the L2/refcount cache tables vmdk: Fix overflow if l1_size is 0x20000000 vmdk: Fix next_cluster_sector for compressed write ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qemu-img.c')
-rw-r--r--qemu-img.c93
1 files changed, 1 insertions, 92 deletions
diff --git a/qemu-img.c b/qemu-img.c
index 8d30e43..60c820d 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -165,97 +165,6 @@ static int GCC_FMT_ATTR(2, 3) qprintf(bool quiet, const char *fmt, ...)
return ret;
}
-#if defined(WIN32)
-/* XXX: put correct support for win32 */
-static int read_password(char *buf, int buf_size)
-{
- int c, i;
-
- printf("Password: ");
- fflush(stdout);
- i = 0;
- for(;;) {
- c = getchar();
- if (c < 0) {
- buf[i] = '\0';
- return -1;
- } else if (c == '\n') {
- break;
- } else if (i < (buf_size - 1)) {
- buf[i++] = c;
- }
- }
- buf[i] = '\0';
- return 0;
-}
-
-#else
-
-#include <termios.h>
-
-static struct termios oldtty;
-
-static void term_exit(void)
-{
- tcsetattr (0, TCSANOW, &oldtty);
-}
-
-static void term_init(void)
-{
- struct termios tty;
-
- tcgetattr (0, &tty);
- oldtty = tty;
-
- tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
- |INLCR|IGNCR|ICRNL|IXON);
- tty.c_oflag |= OPOST;
- tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN);
- tty.c_cflag &= ~(CSIZE|PARENB);
- tty.c_cflag |= CS8;
- tty.c_cc[VMIN] = 1;
- tty.c_cc[VTIME] = 0;
-
- tcsetattr (0, TCSANOW, &tty);
-
- atexit(term_exit);
-}
-
-static int read_password(char *buf, int buf_size)
-{
- uint8_t ch;
- int i, ret;
-
- printf("password: ");
- fflush(stdout);
- term_init();
- i = 0;
- for(;;) {
- ret = read(0, &ch, 1);
- if (ret == -1) {
- if (errno == EAGAIN || errno == EINTR) {
- continue;
- } else {
- break;
- }
- } else if (ret == 0) {
- ret = -1;
- break;
- } else {
- if (ch == '\r') {
- ret = 0;
- break;
- }
- if (i < (buf_size - 1))
- buf[i++] = ch;
- }
- }
- term_exit();
- buf[i] = '\0';
- printf("\n");
- return ret;
-}
-#endif
static int print_block_option_help(const char *filename, const char *fmt)
{
@@ -312,7 +221,7 @@ static BlockBackend *img_open(const char *id, const char *filename,
bs = blk_bs(blk);
if (bdrv_is_encrypted(bs) && require_io) {
qprintf(quiet, "Disk image '%s' is encrypted.\n", filename);
- if (read_password(password, sizeof(password)) < 0) {
+ if (qemu_read_password(password, sizeof(password)) < 0) {
error_report("No password given");
goto fail;
}