fix a crash in arg handling on Windows
we were not updating argc in vips.c after all calls to g_option_context_parse_strv() on Windows, leading to a crash in some cases see https://github.com/jcupitt/libvips/issues/553
This commit is contained in:
parent
c0ab8b0ab1
commit
96ef05a9d1
@ -1,3 +1,6 @@
|
|||||||
|
11/11/16 started 8.4.4
|
||||||
|
- fix crash in vips.exe arg parsing on Windows, thanks Yury
|
||||||
|
|
||||||
18/10/16 started 8.4.3
|
18/10/16 started 8.4.3
|
||||||
- fix error detection in gif_close, thanks aaron42net
|
- fix error detection in gif_close, thanks aaron42net
|
||||||
- fix tiny threading memleak
|
- fix tiny threading memleak
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# also update the version number in the m4 macros below
|
# also update the version number in the m4 macros below
|
||||||
|
|
||||||
AC_INIT([vips], [8.4.3], [vipsip@jiscmail.ac.uk])
|
AC_INIT([vips], [8.4.4], [vipsip@jiscmail.ac.uk])
|
||||||
# required for gobject-introspection
|
# required for gobject-introspection
|
||||||
AC_PREREQ(2.62)
|
AC_PREREQ(2.62)
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ AC_CONFIG_MACRO_DIR([m4])
|
|||||||
# user-visible library versioning
|
# user-visible library versioning
|
||||||
m4_define([vips_major_version], [8])
|
m4_define([vips_major_version], [8])
|
||||||
m4_define([vips_minor_version], [4])
|
m4_define([vips_minor_version], [4])
|
||||||
m4_define([vips_micro_version], [3])
|
m4_define([vips_micro_version], [4])
|
||||||
m4_define([vips_version],
|
m4_define([vips_version],
|
||||||
[vips_major_version.vips_minor_version.vips_micro_version])
|
[vips_major_version.vips_minor_version.vips_micro_version])
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ VIPS_VERSION_STRING=$VIPS_VERSION-`date`
|
|||||||
# binary interface changes not backwards compatible?: reset age to 0
|
# binary interface changes not backwards compatible?: reset age to 0
|
||||||
|
|
||||||
LIBRARY_CURRENT=48
|
LIBRARY_CURRENT=48
|
||||||
LIBRARY_REVISION=3
|
LIBRARY_REVISION=4
|
||||||
LIBRARY_AGE=6
|
LIBRARY_AGE=6
|
||||||
|
|
||||||
# patched into include/vips/version.h
|
# patched into include/vips/version.h
|
||||||
|
@ -1041,12 +1041,18 @@ parse_options( GOptionContext *context, int *argc, char **argv )
|
|||||||
vips_error_exit( NULL );
|
vips_error_exit( NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* On Windows, argc will not have been updated by
|
||||||
|
* g_option_context_parse_strv().
|
||||||
|
*/
|
||||||
|
for( *argc = 0; argv[*argc]; (*argc)++ )
|
||||||
|
;
|
||||||
|
|
||||||
/* Remove any "--" argument. If one of our arguments is a negative
|
/* Remove any "--" argument. If one of our arguments is a negative
|
||||||
* number, the user will need to have added the "--" flag to stop
|
* number, the user will need to have added the "--" flag to stop
|
||||||
* GOption parsing. But "--" is still passed down to us and we need to
|
* GOption parsing. But "--" is still passed down to us and we need to
|
||||||
* ignore it.
|
* ignore it.
|
||||||
*/
|
*/
|
||||||
for( i = 1; i < *argc - 1; i++ )
|
for( i = 1; i < *argc; i++ )
|
||||||
if( strcmp( argv[i], "--" ) == 0 ) {
|
if( strcmp( argv[i], "--" ) == 0 ) {
|
||||||
for( j = i; j < *argc; j++ )
|
for( j = i; j < *argc; j++ )
|
||||||
argv[j] = argv[j + 1];
|
argv[j] = argv[j + 1];
|
||||||
|
Loading…
Reference in New Issue
Block a user