Fix various sanitizer issues.

This commit is contained in:
Lukas Tenbrink 2025-04-28 15:20:57 +02:00
parent 1b4ed4c038
commit bfdb0f0ecf
4 changed files with 13 additions and 11 deletions

View file

@ -138,21 +138,20 @@ Error AudioDriverPulseAudio::detect_channels(bool input) {
}
}
char dev[1024];
if (device == "Default") {
strcpy(dev, input ? default_input_device.utf8().get_data() : default_output_device.utf8().get_data());
} else {
strcpy(dev, device.utf8().get_data());
device = input ? default_input_device : default_output_device;
}
print_verbose("PulseAudio: Detecting channels for device: " + String(dev));
print_verbose("PulseAudio: Detecting channels for device: " + device);
CharString device_utf8 = device.utf8();
// Now using the device name get the amount of channels
pa_status = 0;
pa_operation *pa_op;
if (input) {
pa_op = pa_context_get_source_info_by_name(pa_ctx, dev, &AudioDriverPulseAudio::pa_source_info_cb, (void *)this);
pa_op = pa_context_get_source_info_by_name(pa_ctx, device_utf8.get_data(), &AudioDriverPulseAudio::pa_source_info_cb, (void *)this);
} else {
pa_op = pa_context_get_sink_info_by_name(pa_ctx, dev, &AudioDriverPulseAudio::pa_sink_info_cb, (void *)this);
pa_op = pa_context_get_sink_info_by_name(pa_ctx, device_utf8.get_data(), &AudioDriverPulseAudio::pa_sink_info_cb, (void *)this);
}
if (pa_op) {

View file

@ -4078,7 +4078,7 @@ Vector<Vector2i> TileMapLayerEditor::get_line(const TileMapLayer *p_tile_map_lay
if (sign.x == 0) {
current += Vector2(sign.y, 0);
} else {
current += Vector2(bool(current.y % 2) ^ (sign.x < 0) ? sign.x : 0, sign.y);
current += Vector2(bool(current.y % 2) != (sign.x < 0) ? sign.x : 0, sign.y);
}
err -= err_step.x;
} else {
@ -4095,7 +4095,7 @@ Vector<Vector2i> TileMapLayerEditor::get_line(const TileMapLayer *p_tile_map_lay
if (sign.x == 0) {
current += Vector2(0, sign.y);
} else {
current += Vector2(bool(current.y % 2) ^ (sign.x < 0) ? sign.x : 0, sign.y);
current += Vector2(bool(current.y % 2) != (sign.x < 0) ? sign.x : 0, sign.y);
}
err -= err_step.y;
} else {

View file

@ -5335,7 +5335,7 @@ Variant GDScriptAnalyzer::make_call_reduced_value(GDScriptParser::CallNode *p_ca
Vector<Variant> args;
args.resize(p_call->arguments.size());
const Variant **argptrs = (const Variant **)alloca(sizeof(const Variant **) * args.size());
const Variant **argptrs = (const Variant **)alloca(sizeof(const Variant *) * args.size());
for (int i = 0; i < p_call->arguments.size(); i++) {
bool is_arg_value_reduced = false;
Variant arg_value = make_expression_reduced_value(p_call->arguments[i], is_arg_value_reduced);

View file

@ -7287,7 +7287,10 @@ void RenderingDevice::_set_max_fps(int p_max_fps) {
RenderingDevice *RenderingDevice::create_local_device() {
RenderingDevice *rd = memnew(RenderingDevice);
rd->initialize(context);
if (rd->initialize(context) != OK) {
memdelete(rd);
return nullptr;
}
return rd;
}