summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/stdio')
-rw-r--r--lib/libc/stdio/_flock_stub.c12
-rw-r--r--lib/libc/stdio/local.h2
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/libc/stdio/_flock_stub.c b/lib/libc/stdio/_flock_stub.c
index 8abc8e3..1b79ce2 100644
--- a/lib/libc/stdio/_flock_stub.c
+++ b/lib/libc/stdio/_flock_stub.c
@@ -73,7 +73,9 @@ _flockfile(FILE *fp)
{
pthread_t curthread = _pthread_self();
- if (fp->_lock->fl_owner == curthread)
+ if (fp->_lock == NULL) {
+ }
+ else if (fp->_lock->fl_owner == curthread)
fp->_lock->fl_count++;
else {
/*
@@ -101,7 +103,9 @@ _ftrylockfile(FILE *fp)
pthread_t curthread = _pthread_self();
int ret = 0;
- if (fp->_lock->fl_owner == curthread)
+ if (fp->_lock == NULL) {
+ }
+ else if (fp->_lock->fl_owner == curthread)
fp->_lock->fl_count++;
/*
* Make sure this mutex is treated as a private
@@ -121,10 +125,12 @@ _funlockfile(FILE *fp)
{
pthread_t curthread = _pthread_self();
+ if (fp->_lock == NULL) {
+ }
/*
* Check if this file is owned by the current thread:
*/
- if (fp->_lock->fl_owner == curthread) {
+ else if (fp->_lock->fl_owner == curthread) {
/*
* Check if this thread has locked the FILE
* more than once:
diff --git a/lib/libc/stdio/local.h b/lib/libc/stdio/local.h
index 9e1cad4..2cf2637 100644
--- a/lib/libc/stdio/local.h
+++ b/lib/libc/stdio/local.h
@@ -143,6 +143,6 @@ struct __sFILEX {
* orientation. If o < 0, the stream has byte-orientation.
*/
#define ORIENT(fp, o) do { \
- if ((fp)->_extra->orientation == 0) \
+ if ((fp)->_extra != NULL && (fp)->_extra->orientation == 0) \
(fp)->_extra->orientation = (o); \
} while (0)
OpenPOWER on IntegriCloud