summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Mohr <alexander.m.mohr@daimler.com>2020-12-16 17:31:50 +0100
committerSaya Sugiura <ssugiura@jp.adit-jv.com>2021-01-06 09:12:00 +0900
commitcbd51314c3245174b42070a66089b27472486b00 (patch)
treee5a57eb24e17b081088da5115e0afaa03d96601e
parente7858cfa226f760b6f7ba9a43501ac071b2fd8a8 (diff)
downloadDLT-daemon-cbd51314c3245174b42070a66089b27472486b00.tar.gz
bug-fix: fix invalid file descriptor check
Some functions validated file descriptor to be greater 0. If a process is started without stdin, stdout and stderr the first file descriptor allocated by the process will be 0. This also will be the case if the above mentioned file descriptors will be closed on purpose. As 0 is a valid fd, some methods had to be changed to reflect this. Signed-off-by: Alexander Mohr <alexander.m.mohr@daimler.com>
-rw-r--r--src/shared/dlt_offline_trace.c4
-rw-r--r--src/shared/dlt_user_shared.c9
2 files changed, 9 insertions, 4 deletions
diff --git a/src/shared/dlt_offline_trace.c b/src/shared/dlt_offline_trace.c
index 1f6a5d5..2d70a77 100644
--- a/src/shared/dlt_offline_trace.c
+++ b/src/shared/dlt_offline_trace.c
@@ -396,7 +396,7 @@ DltReturnValue dlt_offline_trace_write(DltOfflineTrace *trace,
int size3)
{
- if (trace->ohandle <= 0)
+ if (trace->ohandle < 0)
return DLT_RETURN_ERROR;
/* check file size here */
@@ -440,7 +440,7 @@ DltReturnValue dlt_offline_trace_write(DltOfflineTrace *trace,
DltReturnValue dlt_offline_trace_free(DltOfflineTrace *trace)
{
- if (trace->ohandle <= 0)
+ if (trace->ohandle < 0)
return DLT_RETURN_ERROR;
/* close last used log file */
diff --git a/src/shared/dlt_user_shared.c b/src/shared/dlt_user_shared.c
index 857a6e9..732301c 100644
--- a/src/shared/dlt_user_shared.c
+++ b/src/shared/dlt_user_shared.c
@@ -108,7 +108,7 @@ DltReturnValue dlt_user_log_out2(int handle, void *ptr1, size_t len1, void *ptr2
struct iovec iov[2];
uint32_t bytes_written;
- if (handle <= 0)
+ if (handle < 0)
/* Invalid handle */
return DLT_RETURN_ERROR;
@@ -130,7 +130,7 @@ DltReturnValue dlt_user_log_out3(int handle, void *ptr1, size_t len1, void *ptr2
struct iovec iov[3];
uint32_t bytes_written;
- if (handle <= 0)
+ if (handle < 0)
/* Invalid handle */
return DLT_RETURN_ERROR;
@@ -145,6 +145,11 @@ DltReturnValue dlt_user_log_out3(int handle, void *ptr1, size_t len1, void *ptr2
if (bytes_written != (len1 + len2 + len3)) {
switch (errno) {
+ case ETIMEDOUT:
+ {
+ return DLT_RETURN_PIPE_ERROR; /* ETIMEDOUT - connect timeout */
+ break;
+ }
case EBADF:
{
return DLT_RETURN_PIPE_ERROR; /* EBADF - handle not open */