Displaying 20 results from an estimated 45 matches for "htole32".
2013 Nov 25
1
[PATCH 3/3, take 2] lib: Add support for creating nodes (keys) and values with UTF-16LE-encoded names
...ent, const char *name)
struct ntreg_nk_record *nk =
(struct ntreg_nk_record *) ((char *) h->addr + nkoffset);
- nk->flags = htole16 (0x0020); /* key is ASCII. */
+ if (use_utf16)
+ nk->flags = htole16 (0x0000);
+ else
+ nk->flags = htole16 (0x0020);
nk->parent = htole32 (parent - 0x1000);
nk->subkey_lf = htole32 (0xffffffff);
nk->subkey_lf_volatile = htole32 (0xffffffff);
nk->vallist = htole32 (0xffffffff);
nk->classname = htole32 (0xffffffff);
- nk->name_len = htole16 (strlen (name));
- strcpy (nk->name, name);
+ nk->name_len =...
2013 Nov 25
3
Re: [PATCH 3/3] lib: Add support for creating nodes (keys) and values with UTF-16LE-encoded names
...ntreg_nk_record *nk =
> (struct ntreg_nk_record *) ((char *) h->addr + nkoffset);
> - nk->flags = htole16 (0x0020); /* key is ASCII. */
> + if (use_utf16)
> + nk->flags = htole16 (0x0000);
> + else
> + nk->flags = htole16 (0x0020);
> nk->parent = htole32 (parent - 0x1000);
> nk->subkey_lf = htole32 (0xffffffff);
> nk->subkey_lf_volatile = htole32 (0xffffffff);
> nk->vallist = htole32 (0xffffffff);
> nk->classname = htole32 (0xffffffff);
> - nk->name_len = htole16 (strlen (name));
> - strcpy (nk->nam...
2013 Nov 24
4
[PATCH 1/3] lib: Further generalize iconv wrapper function.
---
lib/hivex-internal.h | 8 +++++---
lib/utf16.c | 11 +++++++----
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/lib/hivex-internal.h b/lib/hivex-internal.h
index 4135f58..64fd49a 100644
--- a/lib/hivex-internal.h
+++ b/lib/hivex-internal.h
@@ -268,11 +268,13 @@ extern size_t * _hivex_return_offset_list (offset_list *list);
extern void _hivex_print_offset_list
2013 Nov 24
0
[PATCH 3/3] lib: Add support for creating nodes (keys) and values with UTF-16LE-encoded names
...ent, const char *name)
struct ntreg_nk_record *nk =
(struct ntreg_nk_record *) ((char *) h->addr + nkoffset);
- nk->flags = htole16 (0x0020); /* key is ASCII. */
+ if (use_utf16)
+ nk->flags = htole16 (0x0000);
+ else
+ nk->flags = htole16 (0x0020);
nk->parent = htole32 (parent - 0x1000);
nk->subkey_lf = htole32 (0xffffffff);
nk->subkey_lf_volatile = htole32 (0xffffffff);
nk->vallist = htole32 (0xffffffff);
nk->classname = htole32 (0xffffffff);
- nk->name_len = htole16 (strlen (name));
- strcpy (nk->name, name);
+ nk->name_len =...
2010 Feb 05
13
[PATCH 01/14] hivexsh: Document some peculiarities of the "cd" command.
---
hivex/hivexsh.pod | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/hivex/hivexsh.pod b/hivex/hivexsh.pod
index 277e3ae..9336798 100644
--- a/hivex/hivexsh.pod
+++ b/hivex/hivexsh.pod
@@ -100,7 +100,14 @@ or even:
Path elements (node names) are matched case insensitively, and
characters like space, C<*>, and C<?> have I<no> special
2013 Jul 25
19
[PATCH hivex 00/19] Fix read/write handling of li-records.
This is, hopefully, a full fix for handling of li-records.
See:
https://bugzilla.redhat.com/show_bug.cgi?id=717583
https://bugzilla.redhat.com/show_bug.cgi?id=987463
Rich.
2018 Oct 28
0
[PATCH nbdkit 4/4] Add floppy plugin.
..._entry));
+ }
+
+ /* Create the 8.3 (short name / DOS-compatible) entry. */
+ memset (&entry, 0, sizeof entry);
+ memcpy (entry.name, lfn->short_base, 8);
+ memcpy (entry.name+8, lfn->short_ext, 3);
+ entry.attributes = attributes;
+ set_times (statbuf, &entry);
+ entry.size = htole32 (file_size);
+ /* Note that entry.cluster_hi and .cluster_lo are set later on in
+ * update_directory_first_cluster.
+ */
+
+ i = extend_dir_table (di, floppy);
+ if (i == -1)
+ return -1;
+ floppy->dirs[di].table[i] = entry;
+
+ return 0;
+}
+
+/* Set the {c,m,a}date and {c,m}time f...
2016 Feb 05
3
[PATCH] inspect: get windows drive letters for GPT disks.
...from blob to respective ints */
+ memcpy (&data1, guid_bytes, sizeof (data1));
+ memcpy (&data2, guid_bytes + 4, sizeof (data2));
+ memcpy (&data3, guid_bytes + 6, sizeof (data3));
+ memcpy (&data4, guid_bytes + 8, sizeof (data4));
+
+ /* ensure proper endianness */
+ data1 = htole32 (data1);
+ data2 = htole16 (data2);
+ data3 = htole16 (data3);
+ data4 = htobe64 (data4);
+
+ snprintf (guid, len,
+ "%08" PRIX32 "-%04" PRIX16 "-%04" PRIX16 "-%04" PRIX64 "-%06" PRIX64,
+ data1, data2, data3, (data4 >>...
2018 Jul 23
3
[hivex PATCH] Re-allocating unused blocks before assigning new blocks
Hello Richard
As discussed in the IRC channel, when merging a moderately large reg
file (~35MB) to a hiv file (~118 MB); hivex generates a huge hiv file
(~580 MB). These changes address that by creating a list of unallocated
blocks and reassigning unused blocks. I used
https://github.com/msuhanov/regf/blob/master/Windows%20registry%20file%20format%20specification.md
as a reference for the
2016 Feb 05
0
Re: [PATCH] inspect: get windows drive letters for GPT disks.
...t; + memcpy (&data1, guid_bytes, sizeof (data1));
> + memcpy (&data2, guid_bytes + 4, sizeof (data2));
> + memcpy (&data3, guid_bytes + 6, sizeof (data3));
> + memcpy (&data4, guid_bytes + 8, sizeof (data4));
> +
> + /* ensure proper endianness */
> + data1 = htole32 (data1);
Did you mean to use htole32? Surely it should be le32toh?
> + data2 = htole16 (data2);
> + data3 = htole16 (data3);
> + data4 = htobe64 (data4);
And is this really big endian?
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my...
2018 Oct 28
6
[PATCH nbdkit 0/4] Add floppy plugin.
Add nbdkit-floppy-plugin, “inspired” by qemu's VVFAT driver, but
without the ability to handle writes.
The implementation is pretty complete, supporting FAT32, LFNs, volume
labels, timestamps, etc, and it passes both ‘make check’ and ‘make
check-valgrind’.
Usage is simple; to serve the current directory:
$ nbdkit floppy .
Then using guestfish (or any NBD client):
$ guestfish --ro
2016 Feb 05
1
Re: [PATCH] inspect: get windows drive letters for GPT disks.
..._bytes, sizeof (data1));
> > + memcpy (&data2, guid_bytes + 4, sizeof (data2));
> > + memcpy (&data3, guid_bytes + 6, sizeof (data3));
> > + memcpy (&data4, guid_bytes + 8, sizeof (data4));
> > +
> > + /* ensure proper endianness */
> > + data1 = htole32 (data1);
>
> Did you mean to use htole32? Surely it should be le32toh?
yep it seems I got it backwards.
>
> > + data2 = htole16 (data2);
> > + data3 = htole16 (data3);
> > + data4 = htobe64 (data4);
>
> And is this really big endian?
yes it is:
https://en....
2018 Sep 17
0
[PATCH nbdkit v3 3/3] Add partitioning plugin.
...size test in partitioning_config_complete should catch
+ * this earlier.
+ */
+ assert (start_sector <= UINT32_MAX);
+ assert (nr_sectors <= UINT32_MAX);
+
+ out[0] = bootable ? 0x80 : 0;
+ chs_too_large (&out[1]);
+ out[4] = partition_id;
+ chs_too_large (&out[5]);
+ u32 = htole32 (start_sector);
+ memcpy (&out[8], &u32, 4);
+ u32 = htole32 (nr_sectors);
+ memcpy (&out[12], &u32, 4);
+}
+
+static void
+create_gpt_partition_header (const void *pt, int is_primary,
+ unsigned char *out)
+{
+ uint64_t nr_lbas;
+ struct gpt_header...
2019 Feb 22
0
[PATCH nbdkit v3 4/4] Add linuxdisk plugin.
...tart / SECTOR_SIZE;
+ nr_sectors = DIV_ROUND_UP (region->len, SECTOR_SIZE);
+
+ assert (start_sector <= UINT32_MAX);
+ assert (nr_sectors <= UINT32_MAX);
+
+ out[0] = bootable ? 0x80 : 0;
+ chs_too_large (&out[1]);
+ out[4] = partition_id;
+ chs_too_large (&out[5]);
+ u32 = htole32 (start_sector);
+ memcpy (&out[8], &u32, 4);
+ u32 = htole32 (nr_sectors);
+ memcpy (&out[12], &u32, 4);
+}
+
+static void
+create_gpt_protective_mbr (struct virtual_disk *disk, unsigned char *out)
+{
+ struct region region;
+ uint64_t end;
+
+ /* Protective MBR creates an MBR...
2018 Sep 17
4
[PATCH nbdkit 0/3] Add partitioning plugin.
nbdkit partitioning boot.img swap.img root.img
... creates a virtual disk by adding a partition table.
In ancient times Xen used to do this.
Rich.
2018 Sep 17
7
[PATCH nbdkit v3 0/3] Add partitioning plugin.
The partitioning plugin patch is the same (except for rebasing).
However I have changed the first two patches based on feedback
received. In particular this fixes a very serious bug found by Eric
Blake in the current truncate filter.
Rich.
2019 Jul 03
6
[PATCH libnbd 0/2] Two patches to make libnbd work on FreeBSD.
Two simple patches which make libnbd compile on FreeBSD.
Are we OK to copy common/include/byte-swapping.h from nbdkit? There
is no license issue that I know of. Should we put it in lib/ or
create a common/ directory? The header file is actually also needed
by the tests (follow up patch for that) so putting it in common/ might
make more sense.
Some notes if you want to compile on FreeBSD:
-
2019 Feb 19
0
[PATCH nbdkit 4/4] Add linuxdisk plugin.
...tart / SECTOR_SIZE;
+ nr_sectors = DIV_ROUND_UP (region->len, SECTOR_SIZE);
+
+ assert (start_sector <= UINT32_MAX);
+ assert (nr_sectors <= UINT32_MAX);
+
+ out[0] = bootable ? 0x80 : 0;
+ chs_too_large (&out[1]);
+ out[4] = partition_id;
+ chs_too_large (&out[5]);
+ u32 = htole32 (start_sector);
+ memcpy (&out[8], &u32, 4);
+ u32 = htole32 (nr_sectors);
+ memcpy (&out[12], &u32, 4);
+}
+
+static void
+create_gpt_protective_mbr (struct virtual_disk *disk, unsigned char *out)
+{
+ struct region region;
+ uint64_t end;
+
+ /* Protective MBR creates an MBR...
2011 Apr 13
1
[PATCH hivex] maint: split long lines
...>msglvl >= 2)
- fprintf (stderr, "hivex_node_add_child: no keys, allocated new lh-record at 0x%zx\n", lh_offs);
+ fprintf (stderr, "hivex_node_add_child: no keys, allocated new"
+ " lh-record at 0x%zx\n", lh_offs);
parent_nk->subkey_lf = htole32 (lh_offs - 0x1000);
}
@@ -2302,7 +2343,8 @@ hivex_node_add_child (hive_h *h, hive_node_h parent, const char *name)
/* Insert it. */
insert_it:
if (h->msglvl >= 2)
- fprintf (stderr, "hivex_node_add_child: insert key in existing lh-record at 0x%zx, posn %zu\n", o...
2014 Aug 08
2
[PATCH 1/2] Add type checking, support integers as value
...(obj);
+ if (PyErr_Occurred ()) {
+ PyErr_SetString (PyExc_TypeError, \"expected int type for DWORD value\");
+ return -1;
+ }
+
+ ret->len = sizeof (d);
+ ret->value = (char *) word;
+ if (ret->t == hive_t_REG_DWORD)
+ *(uint32_t *) ret->value = htole32 (d);
+ else
+ *(uint32_t *) ret->value = htobe32 (d);
+ } else if (ret->t == hive_t_REG_QWORD) {
+ uint64_t l = PyLong_AsLongLong (obj);
+ if (PyErr_Occurred ()) {
+ PyErr_SetString (PyExc_TypeError, \"expected int type for QWORD value\");
+ return -1;
+...