5ba6d13d8817b098b3594afe5704b3e6a52c3d61 braney Thu Sep 29 12:50:25 2022 -0700 increase the size of the buffer to hold the default cart contents to be arbitrarily large diff --git src/hg/lib/cart.c src/hg/lib/cart.c index ee29bcd..0eb3012 100644 --- src/hg/lib/cart.c +++ src/hg/lib/cart.c @@ -250,36 +250,37 @@ "%s id=%u looks corrupted -- starting over with new %s id.\n", table, id, table); cdb = NULL; } return cdb; } } static char *getDefaultCart(struct sqlConnection *conn) /* Get the default cart if any. */ { char *contents = ""; char *table = defaultCartTable(); if (sqlTableExists(conn, table)) { - char buffer[16 * 1024]; char query[1024]; + sqlSafef(query, sizeof query, "select length(contents) from %s", table); + int length = sqlQuickNum(conn, query) + 1; + contents = needLargeMem(length); sqlSafef(query, sizeof query, "select contents from %s", table); - sqlQuickQuery(conn, query, buffer, sizeof buffer); - contents = cloneString(buffer); + sqlQuickQuery(conn, query, contents, length); } return contents; } struct cartDb *loadDb(struct sqlConnection *conn, char *table, char *secureId, boolean *found) /* Load bits from database and save in hash. */ { struct cartDb *cdb; boolean result = TRUE; cdb = cartDbLoadFromId(conn, table, secureId); if (!cdb) { result = FALSE; struct dyString *query = dyStringNew(256);