Changeset: 305b4f574d81 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=305b4f574d81
Modified Files:
        MonetDB/src/gdk/gdk_align.mx
        MonetDB/src/gdk/gdk_atoms.mx
        common/stream/stream.c
        sql/src/server/sql_semantic.c
Branch: default
Log Message:

Merge with Oct2010 branch.


diffs (229 lines):

diff -r a22ff796a793 -r 305b4f574d81 MonetDB/src/gdk/gdk_align.mx
--- a/MonetDB/src/gdk/gdk_align.mx      Thu Jan 13 12:54:08 2011 +0100
+++ b/MonetDB/src/gdk/gdk_align.mx      Thu Jan 13 14:07:43 2011 +0100
@@ -593,6 +593,7 @@
                BATstore *bs;
                BUN cnt;
                str nme;
+               size_t nmelen;
 
                /* alloc heaps */
                memset(&head, 0, sizeof(Heap));
@@ -607,40 +608,41 @@
                bs = BBP_desc(n->batCacheid);
                cnt = BATcount(n) + 1;
                nme = BBP_physical(n->batCacheid);
+               nmelen = nme ? strlen(nme) : 0;
 
                assert(n->batCacheid > 0);
                assert(hp || !b->htype);
                assert(tp || !b->ttype);
 
                if (n->htype) {
-                       head.filename = (str) GDKmalloc(strlen(nme) + 12);
+                       head.filename = (str) GDKmalloc(nmelen + 12);
                        if (head.filename == NULL)
                                goto bailout;
-                       sprintf(head.filename, "%s.head", nme);
+                       snprintf(head.filename, nmelen + 12, "%s.head", nme);
                        if (n->htype && HEAPalloc(&head, cnt, Hsize(n)) < 0)
                                goto bailout;
                }
                if (n->ttype) {
-                       tail.filename = (str) GDKmalloc(strlen(nme) + 12);
+                       tail.filename = (str) GDKmalloc(nmelen + 12);
                        if (tail.filename == NULL)
                                goto bailout;
-                       sprintf(tail.filename, "%s.tail", nme);
+                       snprintf(tail.filename, nmelen + 12, "%s.tail", nme);
                        if (n->ttype && HEAPalloc(&tail, cnt, Tsize(n)) < 0)
                                goto bailout;
                }
                if (n->H->vheap) {
-                       hh.filename = (str) GDKmalloc(strlen(nme) + 12);
+                       hh.filename = (str) GDKmalloc(nmelen + 12);
                        if (hh.filename == NULL)
                                goto bailout;
-                       sprintf(hh.filename, "%s.hheap", nme);
+                       snprintf(hh.filename, nmelen + 12, "%s.hheap", nme);
                        if (ATOMheap(n->htype, &hh, cnt) < 0)
                                goto bailout;
                }
                if (n->T->vheap) {
-                       th.filename = (str) GDKmalloc(strlen(nme) + 12);
+                       th.filename = (str) GDKmalloc(nmelen + 12);
                        if (th.filename == NULL)
                                goto bailout;
-                       sprintf(th.filename, "%s.theap", nme);
+                       snprintf(th.filename, nmelen + 12, "%s.theap", nme);
                        if (ATOMheap(n->ttype, &th, cnt) < 0)
                                goto bailout;
                }
diff -r a22ff796a793 -r 305b4f574d81 MonetDB/src/gdk/gdk_atoms.mx
--- a/MonetDB/src/gdk/gdk_atoms.mx      Thu Jan 13 12:54:08 2011 +0100
+++ b/MonetDB/src/gdk/gdk_atoms.mx      Thu Jan 13 14:07:43 2011 +0100
@@ -548,7 +548,7 @@
                FATALcheck(GDKatomcnt == MAXATOMS, "ATOMproperty:too many 
types");
                FATALcheck(strlen(id) >= IDLENGTH, "ATOMproperty:name too 
long");
                memset(BATatoms + t, 0, sizeof(atomDesc));
-               strcpy(BATatoms[t].name, id);
+               strncpy(BATatoms[t].name, id, IDLENGTH);
                BATatoms[t].size = sizeof(int); /* default */
                assert_shift_width(ATOMelmshift(BATatoms[t].size), 
BATatoms[t].size);
                BATatoms[t].align = sizeof(int);        /* default */
@@ -575,7 +575,7 @@
                BATatoms[t].align = val;
        } else if (strcmp("storage", property) == 0) {
                BATatoms[t] = BATatoms[val];    /* copy from example */
-               strcpy(BATatoms[t].name, id);   /* restore name */
+               strncpy(BATatoms[t].name, id, IDLENGTH); /* restore name */
        } else if (strcmp("fromstr", property) == 0) {
                BATatoms[t].atomFromStr = (int (*)(char *, int *, void **)) arg;
        } else if (strcmp("tostr", property) == 0) {
@@ -657,7 +657,7 @@
 char *
 ATOMname(int t)
 {
-       return (t >= 0 && t < GDKatomcnt && BATatoms[t].name) ? 
BATatoms[t].name : "null";
+       return t >= 0 && t < GDKatomcnt && *BATatoms[t].name ? BATatoms[t].name 
: "null";
 }
 
 int
@@ -1056,7 +1056,7 @@
        *buf = GDKmalloc(4);
        if (*buf == NULL)
                return -1;
-       strcpy(*buf, "nil");
+       strncpy(*buf, "nil", 4);
        return 3;
 }
 
@@ -1098,7 +1098,7 @@
 {
        @:atommem(char,@1Strlen)@
        if (*src == @1_nil) {
-               strcpy(*dst, "nil");
+               strncpy(*dst, "nil", *len);
                return 3;
        }
        snprintf(*dst, *len, @2, (@3) *src);
@@ -1129,9 +1129,9 @@
 voidToStr(str *dst, int *len, void *src)
 {
        (void) src;
-       @:atommem(char,3)@
+       @:atommem(char,4)@
 
-       strcpy(*dst, "nil");
+       strncpy(*dst, "nil", *len);
        return 3;
 }
 
@@ -1340,7 +1340,7 @@
        @:atommem(char,chrStrlen)@
 
        if (*src == chr_nil) {
-               strcpy(*dst, "nil");
+               strncpy(*dst, "nil", *len);
                return 3;
        } else {
                str p = *dst;
@@ -1348,7 +1348,7 @@
                *p++ = '\'';
                if (*src & 0x80) {
 #ifdef ASCII_CHR
-                       strcpy(*dst, "nil");
+                       strncpy(*dst, "nil", *len);
                        return 3;
 #else
                        *p++ = 0xC0 | ((*src >> 6) & 0x03);
@@ -1427,13 +1427,13 @@
        @:atommem(char,6)@
 
        if (*src == bit_nil) {
-               strcpy(*dst, "nil");
+               strncpy(*dst, "nil", *len);
                return 3;
        } else if (*src) {
-               strcpy(*dst, "true");
+               strncpy(*dst, "true", *len);
                return 4;
        }
-       strcpy(*dst, "false");
+       strncpy(*dst, "false", *len);
        return 5;
 }
 
@@ -1489,7 +1489,7 @@
        if (b == bat_nil || (s = BBPname(b)) == NULL || *s == 0) {
                @:atommem(char,4)@
 
-               strcpy(*dst, "nil");
+               strncpy(*dst, "nil", *len);
                return 3;
        }
        i = (int) (strlen(s) + 4);
@@ -1605,10 +1605,10 @@
    
        @:atommem(char,lngStrlen)@
        if (*src == lng_nil) {
-               strcpy(*dst, "nil");
+               strncpy(*dst, "nil", *len);
                return 3;
        } 
-       sprintf(*dst, LLFMT, *src);
+       snprintf(*dst, *len, LLFMT, *src);
        return strlen(*dst);
 }
 @c
@@ -2359,7 +2359,7 @@
        if (GDK_STRNIL((str) src)) {
                @:atommem(char,4)@
 
-               strcpy(*dst, "nil");
+               strncpy(*dst, "nil", *len);
                return 3;
        } else {
                int sz = escapedStrlen(src);
@@ -2572,7 +2572,7 @@
        @:atommem(char,oidStrlen)@
 
        if (*src == oid_nil) {
-               strcpy(*dst, "nil");
+               strncpy(*dst, "nil", *len);
                return 3;
        }
        snprintf(*dst, *len, OIDFMT "@0", *src);
diff -r a22ff796a793 -r 305b4f574d81 common/stream/stream.c
--- a/common/stream/stream.c    Thu Jan 13 12:54:08 2011 +0100
+++ b/common/stream/stream.c    Thu Jan 13 14:07:43 2011 +0100
@@ -1922,11 +1922,11 @@
        /* if unconverted data from a previous call remains, add it to
           the start of the new data, using temporary space */
        if (ic->buflen > 0) {
-               char *s = alloca(ic->buflen + inbytesleft);
-
-               memcpy(s, ic->buffer, ic->buflen);
-               memcpy(s + ic->buflen, buf, inbytesleft);
-               buf = s;
+               char *bf = alloca(ic->buflen + inbytesleft);
+
+               memcpy(bf, ic->buffer, ic->buflen);
+               memcpy(bf + ic->buflen, buf, inbytesleft);
+               buf = bf;
                inbytesleft += ic->buflen;
                ic->buflen = 0;
        }
diff -r a22ff796a793 -r 305b4f574d81 sql/src/server/sql_semantic.c
--- a/sql/src/server/sql_semantic.c     Thu Jan 13 12:54:08 2011 +0100
+++ b/sql/src/server/sql_semantic.c     Thu Jan 13 14:07:43 2011 +0100
@@ -290,7 +290,8 @@
                m->session->status = status;
                m->cascade_action = cascade_action;
                if (e) {
-                       strcpy(m->errstr, e);
+                       strncpy(m->errstr, e, ERRSIZE);
+                       m->errstr[ERRSIZE - 1] = '\0';
                        _DELETE(e);
                }
        }
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to