Skip to content
Permalink
Browse files
8242485: Null _file checking in fileStream::flush()
Reviewed-by: dholmes, ysuenaga, iklam
  • Loading branch information
Denghui Dong committed Apr 14, 2020
1 parent 23709c8 commit 919027a90e380d148f9aff5057789e15d405a426
Showing 2 changed files with 14 additions and 9 deletions.
@@ -533,8 +533,8 @@ void fileStream::write(const char* s, size_t len) {
if (_file != NULL) {
// Make an unused local variable to avoid warning from gcc compiler.
size_t count = fwrite(s, 1, len, _file);
update_position(s, len);
}
update_position(s, len);
}

long fileStream::fileSize() {
@@ -551,9 +551,12 @@ long fileStream::fileSize() {
}

char* fileStream::readln(char *data, int count ) {
char * ret = ::fgets(data, count, _file);
//Get rid of annoying \n char
data[::strlen(data)-1] = '\0';
char * ret = NULL;
if (_file != NULL) {
ret = ::fgets(data, count, _file);
//Get rid of annoying \n char
data[::strlen(data)-1] = '\0';
}
return ret;
}

@@ -565,15 +568,17 @@ fileStream::~fileStream() {
}

void fileStream::flush() {
fflush(_file);
if (_file != NULL) {
fflush(_file);
}
}

void fdStream::write(const char* s, size_t len) {
if (_fd != -1) {
// Make an unused local variable to avoid warning from gcc compiler.
size_t count = ::write(_fd, s, (int)len);
update_position(s, len);
}
update_position(s, len);
}

defaultStream* defaultStream::instance = NULL;
@@ -230,11 +230,11 @@ class fileStream : public outputStream {
~fileStream();
bool is_open() const { return _file != NULL; }
virtual void write(const char* c, size_t len);
size_t read(void *data, size_t size, size_t count) { return ::fread(data, size, count, _file); }
size_t read(void *data, size_t size, size_t count) { return _file != NULL ? ::fread(data, size, count, _file) : 0; }
char* readln(char *data, int count);
int eof() { return feof(_file); }
int eof() { return _file != NULL ? feof(_file) : -1; }
long fileSize();
void rewind() { ::rewind(_file); }
void rewind() { if (_file != NULL) ::rewind(_file); }
void flush();
};

0 comments on commit 919027a

Please sign in to comment.