[darwinbuild-changes] [783] branches/PR-7748469/darwinup

source_changes at macosforge.org source_changes at macosforge.org
Sun Mar 14 22:47:50 PDT 2010


Revision: 783
          http://trac.macosforge.org/projects/darwinbuild/changeset/783
Author:   wsiegrist at apple.com
Date:     2010-03-14 22:47:50 -0700 (Sun, 14 Mar 2010)
Log Message:
-----------
Peel off the right sized argument when generating sql. Fixes 32-bit-only crash.

Modified Paths:
--------------
    branches/PR-7748469/darwinup/DB.cpp
    branches/PR-7748469/darwinup/Table.cpp

Modified: branches/PR-7748469/darwinup/DB.cpp
===================================================================
--- branches/PR-7748469/darwinup/DB.cpp	2010-03-15 05:40:32 UTC (rev 782)
+++ branches/PR-7748469/darwinup/DB.cpp	2010-03-15 05:47:50 UTC (rev 783)
@@ -311,7 +311,7 @@
 						  this->m_archives_table,
 						  1,
 						  this->m_archives_table->column(2), // name
-						  '!', "<Rollback>");		
+						  '!', "<Rollback>");
 	}
 	if (res != SQLITE_ROW) {
 		fprintf(stderr, "Error: unable to count archives: %d \n", res);
@@ -447,7 +447,7 @@
 									ORDER_BY_DESC,
 									1,
 									this->m_archives_table->column(2),  // name
-									'!', (include_rollbacks ? "" : "<Rollback>") );
+									'!', (include_rollbacks ? "" : "<Rollback>"));
 	
 	if ((res == SQLITE_DONE) && *count) return (DB_OK | DB_FOUND);
 	if (res == SQLITE_DONE) return DB_OK;

Modified: branches/PR-7748469/darwinup/Table.cpp
===================================================================
--- branches/PR-7748469/darwinup/Table.cpp	2010-03-15 05:40:32 UTC (rev 782)
+++ branches/PR-7748469/darwinup/Table.cpp	2010-03-15 05:47:50 UTC (rev 783)
@@ -498,8 +498,12 @@
         } else {
             op = tmp_op;
         }
-        va_arg(args, void*);
-        if (col->type() == SQLITE_BLOB) va_arg(args, uint32_t);
+		if (col->type() == SQLITE_TEXT) va_arg(args, char*);
+        if (col->type() == SQLITE_INTEGER) va_arg(args, uint64_t);
+        if (col->type() == SQLITE_BLOB) {
+			va_arg(args, char*);
+			va_arg(args, uint32_t);
+		}
 		len = snprintf(tmpstr, 256, " AND %s%c%c?", col->name(), not_op, op);
 		if (len >= 255) {
 			fprintf(stderr, "Error: column name is too big (limit: 248): %s\n", 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20100314/a4451ae0/attachment.html>


More information about the darwinbuild-changes mailing list