mirror of
https://github.com/php/php-src.git
synced 2024-09-23 10:57:26 +00:00
improve php_userstreamop_seek()
check for errors in stream_seek() and return correct status
This commit is contained in:
parent
a9aaeea886
commit
be4b75b136
@ -759,6 +759,10 @@ static int php_userstreamop_seek(php_stream *stream, off_t offset, int whence, o
|
||||
retval = NULL;
|
||||
}
|
||||
|
||||
if (ret) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* now determine where we are */
|
||||
ZVAL_STRINGL(&func_name, USERSTREAM_TELL, sizeof(USERSTREAM_TELL)-1, 0);
|
||||
|
||||
@ -768,16 +772,20 @@ static int php_userstreamop_seek(php_stream *stream, off_t offset, int whence, o
|
||||
&retval,
|
||||
0, NULL, 0, NULL TSRMLS_CC);
|
||||
|
||||
if (call_result == SUCCESS && retval != NULL && Z_TYPE_P(retval) == IS_LONG)
|
||||
if (call_result == SUCCESS && retval != NULL && Z_TYPE_P(retval) == IS_LONG) {
|
||||
*newoffs = Z_LVAL_P(retval);
|
||||
else
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s::" USERSTREAM_TELL " is not implemented!",
|
||||
us->wrapper->classname);
|
||||
ret = 0;
|
||||
} else if (call_result == FAILURE) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s::" USERSTREAM_TELL " is not implemented!", us->wrapper->classname);
|
||||
ret = -1;
|
||||
} else {
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
if (retval)
|
||||
if (retval) {
|
||||
zval_ptr_dtor(&retval);
|
||||
|
||||
return 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* parse the return value from one of the stat functions and store the
|
||||
|
Loading…
Reference in New Issue
Block a user