diff options
author | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2010-04-08 12:25:34 +0200 |
---|---|---|
committer | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2010-04-08 12:27:27 +0200 |
commit | e2aec9d81f53ae80bc7561fa83e88df668998a1a (patch) | |
tree | c92436fd25c0c2a38dc1b79d8a627f2e152f88da | |
parent | 2164ba51e299dd2f2829620d5616cd04a0a837f4 (diff) | |
download | samba-e2aec9d81f53ae80bc7561fa83e88df668998a1a.tar.gz samba-e2aec9d81f53ae80bc7561fa83e88df668998a1a.tar.xz samba-e2aec9d81f53ae80bc7561fa83e88df668998a1a.zip |
s4:registry - "patchfile_preg.c" - fix the read operation of the data length on big-endian platforms
-rw-r--r-- | source4/lib/registry/patchfile_preg.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source4/lib/registry/patchfile_preg.c b/source4/lib/registry/patchfile_preg.c index 19e60fa9ba7..c68fb98a13c 100644 --- a/source4/lib/registry/patchfile_preg.c +++ b/source4/lib/registry/patchfile_preg.c @@ -291,12 +291,15 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, ret = WERR_GENERAL_FAILURE; goto cleanup; } + /* Get data length */ if (read(fd, &length, 4) < 4) { DEBUG(0, ("Error while reading PReg\n")); ret = WERR_GENERAL_FAILURE; goto cleanup; } + length = IVAL(&length, 0); + /* Read past delimiter */ buf_ptr = buf; if (!(W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) && @@ -305,6 +308,7 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, ret = WERR_GENERAL_FAILURE; goto cleanup; } + /* Get the data */ buf_ptr = buf; if (length < buf_size && |