Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CBRD-24693] Segfault when Server-side JDBC's request is larger than 4096 #4165

Merged
merged 1 commit into from
Mar 10, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions src/jsp/com/cubrid/jsp/impl/SUConnection.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public DBParameterInfo getDBParameter() throws IOException, SQLException {
CUBRIDPacker packer = new CUBRIDPacker(outputBuffer);
packer.packInt(SUFunctionCode.GET_DB_PARAMETER.getCode());

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
DBParameterInfo info = new DBParameterInfo(unpacker);
return info;
}
Expand All @@ -101,7 +101,7 @@ public SUStatement prepare(String sql, byte flag, boolean recompile)
packer.packString(sql);
packer.packInt(flag);

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
PrepareInfo info = new PrepareInfo(unpacker);

SUStatement stmt = null;
Expand All @@ -124,7 +124,7 @@ public SUStatement getSchemaInfo(int type, String arg1, String arg2, byte flag)
packer.packString(arg2);
packer.packInt(flag);

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
GetSchemaInfo info = new GetSchemaInfo(unpacker);
SUStatement stmt = new SUStatement(this, info, arg1, arg2, type);
return stmt;
Expand Down Expand Up @@ -156,7 +156,7 @@ public ExecuteInfo execute(
bindParameter.pack(packer);
}

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
ExecuteInfo info = new ExecuteInfo(unpacker);
return info;
}
Expand All @@ -171,7 +171,7 @@ public FetchInfo fetch(long queryId, int currentRowIndex, int fetchSize, int fet
packer.packInt(fetchSize);
packer.packInt(fetchFlag);

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
FetchInfo info = new FetchInfo(unpacker);
return info;
}
Expand All @@ -182,7 +182,7 @@ public MakeOutResultSetInfo makeOutResult(long queryId) throws IOException, SQLE
packer.packInt(SUFunctionCode.MAKE_OUT_RS.getCode());
packer.packBigInt(queryId);

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
MakeOutResultSetInfo info = new MakeOutResultSetInfo(unpacker);
return info;
}
Expand All @@ -193,7 +193,7 @@ public ExecuteInfo nextResult(int handlerId) throws IOException, SQLException {
packer.packInt(SUFunctionCode.NEXT_RESULT.getCode());
packer.packInt(handlerId);

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
ExecuteInfo info = new ExecuteInfo(unpacker);
return info;
}
Expand All @@ -218,7 +218,7 @@ public SUStatement getByOID(CUBRIDOID oid, String[] attributeName)
packer.packInt(0);
}

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
GetByOIDInfo info = new GetByOIDInfo(unpacker);
SUStatement stmt = new SUStatement(this, info, oid, attributeName);
return stmt;
Expand All @@ -231,7 +231,7 @@ public SUStatement getGeneratedKeys(int handlerId)
packer.packInt(SUFunctionCode.GET_GENERATED_KEYS.getCode());
packer.packInt(handlerId);

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
GetGeneratedKeysInfo info = new GetGeneratedKeysInfo(unpacker);
SUStatement stmt = new SUStatement(this, info);
return stmt;
Expand Down Expand Up @@ -260,7 +260,7 @@ public void putByOID(CUBRIDOID oid, String[] attributeName, Object values[])
packer.packInt(0);
}

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
int result = unpacker.unpackInt();
}

Expand All @@ -271,7 +271,7 @@ public Object oidCmd(CUBRIDOID oid, int command) throws IOException, SQLExceptio
packer.packInt(command);
packer.packOID(new SOID(oid.getOID()));

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
int result = unpacker.unpackInt();
if (command == CUBRIDServerSideConstants.IS_INSTANCE) {
if (result == 1) {
Expand Down Expand Up @@ -308,7 +308,7 @@ protected CUBRIDUnpacker collectionCmd(
packer.packInt(0); // has value
}

CUBRIDUnpacker unpacker = request(outputBuffer);
CUBRIDUnpacker unpacker = request(packer.getBuffer());
return unpacker;
}

Expand Down