From a2dd8400a58d74bf819caa8d9c54e53fa7e20b6e Mon Sep 17 00:00:00 2001 From: pradeep Date: Tue, 28 Jan 2020 17:06:31 +0530 Subject: [PATCH 1/2] Fix unchecked string creation from ffi return value --- src/error.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/error.rs b/src/error.rs index f6b91e963..a544b58d0 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,6 +1,6 @@ extern crate libc; -use self::libc::{c_char, c_int}; +use self::libc::c_char; use crate::defines::AfError; use crate::util::{free_host, DimT, MutDimT}; use std::error::Error; @@ -10,7 +10,7 @@ use std::sync::RwLock; #[allow(dead_code)] extern "C" { - fn af_get_last_error(str: *mut *mut c_char, len: *mut DimT) -> c_int; + fn af_get_last_error(str: *mut *mut c_char, len: *mut DimT); } /// Signature of error handling callback function @@ -99,14 +99,15 @@ pub fn HANDLE_ERROR(error_code: AfError) { } pub fn get_last_error() -> String { - let result: String; + let mut result: String = String::from("No Last Error"); + let mut tmp: *mut c_char = ::std::ptr::null_mut(); + let mut len: DimT = 0; unsafe { - let mut tmp: *mut c_char = ::std::ptr::null_mut(); - let mut len: DimT = 0; - let err_val = af_get_last_error(&mut tmp, &mut len as MutDimT); - HANDLE_ERROR(AfError::from(err_val)); - result = CStr::from_ptr(tmp).to_string_lossy().into_owned(); - free_host(tmp); + af_get_last_error(&mut tmp, &mut len as MutDimT); + if len > 0 { + result = CStr::from_ptr(tmp).to_string_lossy().into_owned(); + free_host(tmp); + } } result } From 6fb5b33599ea64a0012055497baff18d2e176550 Mon Sep 17 00:00:00 2001 From: pradeep Date: Tue, 28 Jan 2020 17:15:15 +0530 Subject: [PATCH 2/2] Fix github actions push/pr triggers --- .github/workflows/{pull_request.yml => ci.yml} | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) rename .github/workflows/{pull_request.yml => ci.yml} (95%) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/ci.yml similarity index 95% rename from .github/workflows/pull_request.yml rename to .github/workflows/ci.yml index 6f8d6ad12..133b43ee7 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,12 @@ -on: [push, pull_request] +on: + push: + branches: + - master + pull_request: + branches: + - master -name: Pull Request +name: ci jobs: build_test: