]> granicus.if.org Git - apache/commitdiff
mod_dav: Fix a problem that could cause crashes when manipulating
authorJeff Trawick <trawick@apache.org>
Fri, 19 Mar 2004 02:32:25 +0000 (02:32 +0000)
committerJeff Trawick <trawick@apache.org>
Fri, 19 Mar 2004 02:32:25 +0000 (02:32 +0000)
locks on some platforms.

crashes seen on Sparc when the integer copied out of the database
was not aligned properly

also, sizeof(int) not necessarily sizeof(apr_size_t), so that could
be a concern; we copy in sizeof(apr_size_t field) so we should copy
out sizeof(apr_size_t field)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@103027 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/dav/fs/lock.c

diff --git a/CHANGES b/CHANGES
index de347e38bb3fc6a6cacfa81385eb878d8ed8191a..197396dafa3dd9a2b6ff7082af329f574e5527f7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@ Changes with Apache 2.1.0-dev
 
   [Remove entries to the current 2.0 section below, when backported]
 
+  *) mod_dav: Fix a problem that could cause crashes when manipulating 
+     locks on some platforms.  [Jeff Trawick]
+
   *) Satisfy directives now can be influenced by a surrounding <Limit>
      container.  PR 14726.  [AndrĂ© Malo]
 
index 775b9f90656efaab957618781d899ddbab791b34..9331174ef4c1e510b78d561598a2cfb37109d016 100644 (file)
@@ -652,7 +652,7 @@ static dav_error * dav_fs_load_lock_record(dav_lockdb *lockdb, apr_datum_t key,
            offset += sizeof(*ip->locktoken);
            memcpy(&ip->timeout, val.dptr + offset, sizeof(ip->timeout));
            offset += sizeof(ip->timeout);
-           ip->key.dsize = *((int *) (val.dptr + offset));     /* length of datum */
+            memcpy(&ip->key.dsize, val.dptr + offset, sizeof(ip->key.dsize)); /* length of datum */
            offset += sizeof(ip->key.dsize);
            ip->key.dptr = apr_palloc(p, ip->key.dsize); 
            memcpy(ip->key.dptr, val.dptr + offset, ip->key.dsize);