add dir detector
useful for blocking open for read of directories
This commit is contained in:
parent
d13c0a69fd
commit
a592d99bb2
@ -13,6 +13,7 @@
|
|||||||
VIPS_PIPE_READ_LIMIT
|
VIPS_PIPE_READ_LIMIT
|
||||||
- revise gifload to fix BACKGROUND and PREVIOUS dispose [alon-ne]
|
- revise gifload to fix BACKGROUND and PREVIOUS dispose [alon-ne]
|
||||||
- add subsample_mode, deprecate no_subsample in jpegsave [Elad-Laufer]
|
- add subsample_mode, deprecate no_subsample in jpegsave [Elad-Laufer]
|
||||||
|
- add vips_isdirf()
|
||||||
|
|
||||||
31/1/19 started 8.9.2
|
31/1/19 started 8.9.2
|
||||||
- fix a deadlock with --vips-leak [DarthSim]
|
- fix a deadlock with --vips-leak [DarthSim]
|
||||||
|
@ -535,7 +535,12 @@ vips_foreign_find_load( const char *name )
|
|||||||
*/
|
*/
|
||||||
if( !vips_existsf( "%s", filename ) ) {
|
if( !vips_existsf( "%s", filename ) ) {
|
||||||
vips_error( "VipsForeignLoad",
|
vips_error( "VipsForeignLoad",
|
||||||
_( "file \"%s\" not readable" ), name );
|
_( "file \"%s\" does not exist" ), name );
|
||||||
|
return( NULL );
|
||||||
|
}
|
||||||
|
if( vips_isdirf( "%s", filename ) ) {
|
||||||
|
vips_error( "VipsForeignLoad",
|
||||||
|
_( "\"%s\" is a directory" ), name );
|
||||||
return( NULL );
|
return( NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,6 +281,8 @@ gint64 vips__seek( int fd, gint64 pos, int whence );
|
|||||||
int vips__ftruncate( int fd, gint64 pos );
|
int vips__ftruncate( int fd, gint64 pos );
|
||||||
int vips_existsf( const char *name, ... )
|
int vips_existsf( const char *name, ... )
|
||||||
__attribute__((format(printf, 1, 2)));
|
__attribute__((format(printf, 1, 2)));
|
||||||
|
int vips_isdirf( const char *name, ... )
|
||||||
|
__attribute__((format(printf, 1, 2)));
|
||||||
int vips_mkdirf( const char *name, ... )
|
int vips_mkdirf( const char *name, ... )
|
||||||
__attribute__((format(printf, 1, 2)));
|
__attribute__((format(printf, 1, 2)));
|
||||||
int vips_rmdirf( const char *name, ... )
|
int vips_rmdirf( const char *name, ... )
|
||||||
|
@ -1157,7 +1157,7 @@ vips__ftruncate( int fd, gint64 pos )
|
|||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TRUE if file exists and is not a directory.
|
/* TRUE if file exists. True for directories as well.
|
||||||
*/
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
vips_existsf( const char *name, ... )
|
vips_existsf( const char *name, ... )
|
||||||
@ -1170,9 +1170,27 @@ vips_existsf( const char *name, ... )
|
|||||||
path = g_strdup_vprintf( name, ap );
|
path = g_strdup_vprintf( name, ap );
|
||||||
va_end( ap );
|
va_end( ap );
|
||||||
|
|
||||||
/* A regular (not a directory) file.
|
result = g_file_test( path, G_FILE_TEST_EXISTS );
|
||||||
*/
|
|
||||||
result = g_file_test( path, G_FILE_TEST_IS_REGULAR );
|
g_free( path );
|
||||||
|
|
||||||
|
return( result );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TRUE if file exists and is a directory.
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
vips_isdirf( const char *name, ... )
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
char *path;
|
||||||
|
gboolean result;
|
||||||
|
|
||||||
|
va_start( ap, name );
|
||||||
|
path = g_strdup_vprintf( name, ap );
|
||||||
|
va_end( ap );
|
||||||
|
|
||||||
|
result = g_file_test( path, G_FILE_TEST_IS_DIR );
|
||||||
|
|
||||||
g_free( path );
|
g_free( path );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user