r2634: use discard_const_p() in a few places
authorAndrew Tridgell <tridge@samba.org>
Sat, 25 Sep 2004 12:48:56 +0000 (12:48 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:59:14 +0000 (12:59 -0500)
(This used to be commit 56ecda2178e33508c55c6195ccec41c06e099d6f)

source4/lib/tdb/common/tdbutil.c
source4/lib/util.c
source4/lib/util_unistr.c
source4/librpc/rpc/dcerpc_util.c
source4/ntvfs/ipc/vfs_ipc.c

index 596a79f52e23acd09e0ca8e742a4a68aa9be2b3f..0e0a6eca28229919e4672e466aa9f8f0d7bc7caf 100644 (file)
@@ -82,7 +82,7 @@ static void (*TdbCatchSignal(int signum,void (*handler)(int )))(int)
 static TDB_DATA make_tdb_data(const char *dptr, size_t dsize)
 {
        TDB_DATA ret;
-       ret.dptr = dptr;
+       ret.dptr = discard_const_p(char, dptr);
        ret.dsize = dsize;
        return ret;
 }
index 910a35217c653b30c9462fa076b463777996da26..2862a40bd7b81df542297b5a73bae0b41c6088b3 100644 (file)
@@ -944,8 +944,11 @@ BOOL all_zero(const char *ptr, uint_t size)
   we get new errors.
 
   Please only add more calls to this function when you find it
-  _really_ hard to fix const warnings. Our aim is to eventually not
-  need this function at all,
+  _really_ hard to fix const warnings. Our aim is to eventually use
+  this function in only a very few places.
+
+  Also, please call this via the discard_const_p() macro interface, as that
+  makes the return type safe.
 */
 void *discard_const(const void *ptr)
 {
index 1d7d0de19aef1dccde93b82f08509b88a05e2927..2d4b2e8fa8b0f16e63b95eda330c91c3a02cdc75 100644 (file)
@@ -224,10 +224,10 @@ wide strchr()
 smb_ucs2_t *strchr_w(const smb_ucs2_t *s, smb_ucs2_t c)
 {
        while (*s != 0) {
-               if (c == *s) return s;
+               if (c == *s) return discard_const_p(smb_ucs2_t, s);
                s++;
        }
-       if (c == *s) return s;
+       if (c == *s) return discard_const_p(smb_ucs2_t, s);
 
        return NULL;
 }
@@ -244,7 +244,7 @@ smb_ucs2_t *strrchr_w(const smb_ucs2_t *s, smb_ucs2_t c)
        if (len == 0) return NULL;
        p += (len - 1);
        do {
-               if (c == *p) return p;
+               if (c == *p) return discard_const_p(smb_ucs2_t, p);
        } while (p-- != s);
        return NULL;
 }
index 2a715eac1dbdec33adc14794998ad44bbfb49fff..43cced0543d4afec3bce08fdbf4e581ba4e3600b 100644 (file)
@@ -687,10 +687,10 @@ NTSTATUS dcerpc_secondary_connection(struct dcerpc_pipe *p, struct dcerpc_pipe *
 }
 
 NTSTATUS dcerpc_generic_session_key(struct dcerpc_pipe *p,
-                                 DATA_BLOB *session_key)
+                                   DATA_BLOB *session_key)
 {
        /* this took quite a few CPU cycles to find ... */
-       session_key->data = "SystemLibraryDTC";
+       session_key->data = discard_const_p(char, "SystemLibraryDTC");
        session_key->length = 16;
        return NT_STATUS_OK;
 }
index 1ed2efba6bd62273189a422dab8d90d2812ed3b8..ce6629739a0524375deb8d445c8975b036a441b3 100644 (file)
@@ -435,13 +435,13 @@ static NTSTATUS ipc_write(struct smbsrv_request *req, union smb_write *wr)
        switch (wr->generic.level) {
        case RAW_WRITE_WRITE:
                fnum = wr->write.in.fnum;
-               data.data = wr->write.in.data;
+               data.data = discard_const_p(void, wr->write.in.data);
                data.length = wr->write.in.count;
                break;
 
        case RAW_WRITE_WRITEX:
                fnum = wr->writex.in.fnum;
-               data.data = wr->writex.in.data;
+               data.data = discard_const_p(void, wr->writex.in.data);
                data.length = wr->writex.in.count;
                break;