Skip to content

Commit b74504b

Browse files
committed
Merge branch 'master' of github.com:libvips/libvips
2 parents 687209e + 296c263 commit b74504b

32 files changed

+56
-48
lines changed

cplusplus/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ libvips_cpp_lib = library('vips-cpp',
99
dependencies: libvips_dep,
1010
include_directories: libvips_cpp_includedir,
1111
version: library_version,
12+
darwin_versions: darwin_versions,
1213
gnu_symbol_visibility: 'hidden',
1314
install: true,
1415
)

libvips/foreign/csvload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ vips_foreign_load_csv_source_class_init( VipsForeignLoadCsvFileClass *class )
657657
object_class->nickname = "csvload_source";
658658
object_class->build = vips_foreign_load_csv_source_build;
659659

660-
operation_class->flags = VIPS_OPERATION_NOCACHE;
660+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
661661

662662
load_class->is_a_source = vips_foreign_load_csv_source_is_a_source;
663663

libvips/foreign/fitsload.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ vips_foreign_load_fits_class_init( VipsForeignLoadFitsClass *class )
188188
/* cfitsio has not been fuzzed, so should not be used with
189189
* untrusted input unless you are very careful.
190190
*/
191-
operation_class->flags = VIPS_OPERATION_UNTRUSTED;
191+
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
192192

193193
/* is_a() is not that quick ... lower the priority.
194194
*/
@@ -332,7 +332,7 @@ vips_foreign_load_fits_source_class_init(
332332
object_class->description = _( "load FITS from a source" );
333333
object_class->build = vips_foreign_load_fits_source_build;
334334

335-
operation_class->flags = VIPS_OPERATION_NOCACHE;
335+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
336336

337337
load_class->is_a_source =
338338
vips_foreign_load_fits_source_is_a_source;

libvips/foreign/fitssave.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ vips_foreign_save_fits_class_init( VipsForeignSaveFitsClass *class )
133133
/* cfitsio has not been fuzzed, so should not be used with
134134
* untrusted input unless you are very careful.
135135
*/
136-
operation_class->flags = VIPS_OPERATION_UNTRUSTED;
136+
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
137137

138138
foreign_class->suffs = vips__fits_suffs;
139139

libvips/foreign/heifload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1391,7 +1391,7 @@ vips_foreign_load_heif_source_class_init(
13911391
object_class->nickname = "heifload_source";
13921392
object_class->build = vips_foreign_load_heif_source_build;
13931393

1394-
operation_class->flags = VIPS_OPERATION_NOCACHE;
1394+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
13951395

13961396
load_class->is_a_source = vips_foreign_load_heif_source_is_a_source;
13971397

libvips/foreign/heifsave.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,7 @@ vips_foreign_save_avif_target_class_init(
868868

869869
/* Hide from UI.
870870
*/
871-
operation_class->flags = VIPS_OPERATION_DEPRECATED;
871+
operation_class->flags |= VIPS_OPERATION_DEPRECATED;
872872
}
873873

874874
static void

libvips/foreign/jp2kload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1279,7 +1279,7 @@ vips_foreign_load_jp2k_source_class_init(
12791279
object_class->nickname = "jp2kload_source";
12801280
object_class->build = vips_foreign_load_jp2k_source_build;
12811281

1282-
operation_class->flags = VIPS_OPERATION_NOCACHE;
1282+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
12831283

12841284
load_class->is_a_source = vips_foreign_load_jp2k_is_a_source;
12851285

libvips/foreign/jpegload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ vips_foreign_load_jpeg_source_class_init(
260260
object_class->description = _( "load image from jpeg source" );
261261
object_class->build = vips_foreign_load_jpeg_source_build;
262262

263-
operation_class->flags = VIPS_OPERATION_NOCACHE;
263+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
264264

265265
load_class->is_a_source = vips_foreign_load_jpeg_source_is_a_source;
266266

libvips/foreign/jxlload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,7 @@ vips_foreign_load_jxl_source_class_init( VipsForeignLoadJxlSourceClass *class )
918918
object_class->nickname = "jxlload_source";
919919
object_class->build = vips_foreign_load_jxl_source_build;
920920

921-
operation_class->flags = VIPS_OPERATION_NOCACHE;
921+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
922922

923923
load_class->is_a_source = vips_foreign_load_jxl_is_a_source;
924924

libvips/foreign/magick6load.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ vips_foreign_load_magick_class_init( VipsForeignLoadMagickClass *class )
114114

115115
/* Don't cache magickload: it can gobble up memory and disc.
116116
*/
117-
operation_class->flags = VIPS_OPERATION_NOCACHE;
117+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
118118

119119
/* *magick is fuzzed, but it's such a huge thing it's safer to
120120
* disable it.

libvips/foreign/magick7load.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ vips_foreign_load_magick7_class_init( VipsForeignLoadMagick7Class *class )
355355

356356
/* Don't cache magickload: it can gobble up memory and disc.
357357
*/
358-
operation_class->flags = VIPS_OPERATION_NOCACHE;
358+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
359359

360360
/* *magick is fuzzed, but it's such a huge thing it's safer to
361361
* disable it.

libvips/foreign/matrixload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ vips_foreign_load_matrix_source_class_init(
458458
object_class->nickname = "matrixload_source";
459459
object_class->build = vips_foreign_load_matrix_source_build;
460460

461-
operation_class->flags = VIPS_OPERATION_NOCACHE;
461+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
462462

463463
load_class->is_a_source = vips_foreign_load_matrix_source_is_a_source;
464464

libvips/foreign/niftiload.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ vips_foreign_load_nifti_class_init( VipsForeignLoadNiftiClass *class )
595595
/* nificlib has not been fuzzed, so should not be used with
596596
* untrusted input unless you are very careful.
597597
*/
598-
operation_class->flags = VIPS_OPERATION_UNTRUSTED;
598+
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
599599

600600
/* is_a() is not that quick ... lower the priority.
601601
*/
@@ -783,7 +783,7 @@ vips_foreign_load_nifti_source_class_init(
783783
object_class->description = _( "load NIfTI volumes" );
784784
object_class->build = vips_foreign_load_nifti_source_build;
785785

786-
operation_class->flags = VIPS_OPERATION_NOCACHE;
786+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
787787

788788
load_class->is_a_source =
789789
vips_foreign_load_nifti_source_is_a_source;

libvips/foreign/niftisave.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ vips_foreign_save_nifti_class_init( VipsForeignSaveNiftiClass *class )
432432
/* nificlib has not been fuzzed, so should not be used with
433433
* untrusted input unless you are very careful.
434434
*/
435-
operation_class->flags = VIPS_OPERATION_UNTRUSTED;
435+
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
436436

437437
foreign_class->suffs = vips_foreign_nifti_suffs;
438438

libvips/foreign/nsgifload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ vips_foreign_load_nsgif_source_class_init(
826826
object_class->description = _( "load gif from source" );
827827
object_class->build = vips_foreign_load_nsgif_source_build;
828828

829-
operation_class->flags = VIPS_OPERATION_NOCACHE;
829+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
830830

831831
load_class->is_a_source = vips_foreign_load_nsgif_is_a_source;
832832

libvips/foreign/openslideload.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,7 @@ vips_foreign_load_openslide_class_init( VipsForeignLoadOpenslideClass *class )
859859
{
860860
GObjectClass *gobject_class = G_OBJECT_CLASS( class );
861861
VipsObjectClass *object_class = (VipsObjectClass *) class;
862+
VipsOperationClass *operation_class = VIPS_OPERATION_CLASS( class );
862863
VipsForeignClass *foreign_class = (VipsForeignClass *) class;
863864
VipsForeignLoadClass *load_class = (VipsForeignLoadClass *) class;
864865

@@ -879,6 +880,16 @@ vips_foreign_load_openslide_class_init( VipsForeignLoadOpenslideClass *class )
879880
*/
880881
foreign_class->priority = 100;
881882

883+
/* libopenslide does not try to recover from errors, so it's not safe
884+
* to cache.
885+
*/
886+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
887+
888+
/* openslide has not been fuzzed and is largly unmaintained, so should
889+
* not be used with untrusted input unless you are very careful.
890+
*/
891+
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
892+
882893
load_class->get_flags_filename =
883894
vips_foreign_load_openslide_get_flags_filename;
884895
load_class->get_flags = vips_foreign_load_openslide_get_flags;
@@ -1053,7 +1064,6 @@ vips_foreign_load_openslide_source_class_init(
10531064
{
10541065
GObjectClass *gobject_class = G_OBJECT_CLASS( class );
10551066
VipsObjectClass *object_class = (VipsObjectClass *) class;
1056-
VipsOperationClass *operation_class = VIPS_OPERATION_CLASS( class );
10571067
VipsForeignLoadClass *load_class = (VipsForeignLoadClass *) class;
10581068

10591069
gobject_class->set_property = vips_object_set_property;
@@ -1063,16 +1073,6 @@ vips_foreign_load_openslide_source_class_init(
10631073
object_class->description = _( "load source with OpenSlide" );
10641074
object_class->build = vips_foreign_load_openslide_source_build;
10651075

1066-
/* libopenslide does not try to recover from errors, so it's not safe
1067-
* to cache.
1068-
*/
1069-
operation_class->flags = VIPS_OPERATION_NOCACHE;
1070-
1071-
/* openslide has not been fuzzed and is largly unmaintained, so should
1072-
* not be used with untrusted input unless you are very careful.
1073-
*/
1074-
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
1075-
10761076
load_class->is_a_source =
10771077
vips_foreign_load_openslide_source_is_a_source;
10781078

libvips/foreign/pdfiumload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -967,7 +967,7 @@ vips_foreign_load_pdf_source_class_init(
967967
object_class->description = _( "load PDF from source" );
968968
object_class->build = vips_foreign_load_pdf_source_build;
969969

970-
operation_class->flags = VIPS_OPERATION_NOCACHE;
970+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
971971

972972
load_class->is_a_source = vips_foreign_load_pdf_source_is_a_source;
973973

libvips/foreign/pngload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ vips_foreign_load_png_source_class_init( VipsForeignLoadPngSourceClass *class )
233233
object_class->description = _( "load png from source" );
234234
object_class->build = vips_foreign_load_png_source_build;
235235

236-
operation_class->flags = VIPS_OPERATION_NOCACHE;
236+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
237237

238238
load_class->is_a_source = vips_foreign_load_png_source_is_a_source;
239239

libvips/foreign/popplerload.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,7 @@ vips_foreign_load_pdf_class_init( VipsForeignLoadPdfClass *class )
519519
{
520520
GObjectClass *gobject_class = G_OBJECT_CLASS( class );
521521
VipsObjectClass *object_class = (VipsObjectClass *) class;
522+
VipsOperationClass *operation_class = VIPS_OPERATION_CLASS( class );
522523
VipsForeignLoadClass *load_class = (VipsForeignLoadClass *) class;
523524

524525
gobject_class->dispose = vips_foreign_load_pdf_dispose;
@@ -529,6 +530,10 @@ vips_foreign_load_pdf_class_init( VipsForeignLoadPdfClass *class )
529530
object_class->description = _( "load PDF with libpoppler" );
530531
object_class->build = vips_foreign_load_pdf_build;
531532

533+
/* libpoppler is fuzzed, but not by us.
534+
*/
535+
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
536+
532537
load_class->get_flags_filename =
533538
vips_foreign_load_pdf_get_flags_filename;
534539
load_class->get_flags = vips_foreign_load_pdf_get_flags;
@@ -846,7 +851,7 @@ vips_foreign_load_pdf_source_class_init(
846851
object_class->description = _( "load PDF from source" );
847852
object_class->build = vips_foreign_load_pdf_source_build;
848853

849-
operation_class->flags = VIPS_OPERATION_NOCACHE;
854+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
850855

851856
load_class->is_a_source = vips_foreign_load_pdf_source_is_a_source;
852857

libvips/foreign/ppmload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -886,7 +886,7 @@ vips_foreign_load_ppm_source_class_init( VipsForeignLoadPpmFileClass *class )
886886
object_class->nickname = "ppmload_source";
887887
object_class->build = vips_foreign_load_ppm_source_build;
888888

889-
operation_class->flags = VIPS_OPERATION_NOCACHE;
889+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
890890

891891
load_class->is_a_source = vips_foreign_load_ppm_is_a_source;
892892

libvips/foreign/ppmsave.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ vips_foreign_save_pbm_target_class_init(
641641

642642
/* Hide from UI.
643643
*/
644-
operation_class->flags = VIPS_OPERATION_DEPRECATED;
644+
operation_class->flags |= VIPS_OPERATION_DEPRECATED;
645645
}
646646

647647
static void
@@ -673,7 +673,7 @@ vips_foreign_save_pgm_target_class_init(
673673

674674
/* Hide from UI.
675675
*/
676-
operation_class->flags = VIPS_OPERATION_DEPRECATED;
676+
operation_class->flags |= VIPS_OPERATION_DEPRECATED;
677677
}
678678

679679
static void
@@ -705,7 +705,7 @@ vips_foreign_save_pfm_target_class_init(
705705

706706
/* Hide from UI.
707707
*/
708-
operation_class->flags = VIPS_OPERATION_DEPRECATED;
708+
operation_class->flags |= VIPS_OPERATION_DEPRECATED;
709709
}
710710

711711
static void

libvips/foreign/radload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ vips_foreign_load_rad_source_class_init( VipsForeignLoadRadSourceClass *class )
199199
object_class->description = _( "load rad from source" );
200200
object_class->build = vips_foreign_load_rad_source_build;
201201

202-
operation_class->flags = VIPS_OPERATION_NOCACHE;
202+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
203203

204204
load_class->is_a_source = vips_foreign_load_rad_source_is_a_source;
205205

libvips/foreign/spngload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,7 @@ vips_foreign_load_png_source_class_init( VipsForeignLoadPngSourceClass *class )
748748
object_class->description = _( "load png from source" );
749749
object_class->build = vips_foreign_load_png_source_build;
750750

751-
operation_class->flags = VIPS_OPERATION_NOCACHE;
751+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
752752

753753
load_class->is_a_source = vips_foreign_load_png_source_is_a_source;
754754

libvips/foreign/svgload.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ vips_foreign_load_svg_class_init( VipsForeignLoadSvgClass *class )
691691
/* librsvg has not been fuzzed, so should not be used with
692692
* untrusted input unless you are very careful.
693693
*/
694-
operation_class->flags = VIPS_OPERATION_UNTRUSTED;
694+
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
695695

696696
/* is_a() is not that quick ... lower the priority.
697697
*/
@@ -814,7 +814,7 @@ vips_foreign_load_svg_source_class_init( VipsForeignLoadSvgSourceClass *class )
814814
object_class->nickname = "svgload_source";
815815
object_class->description = _( "load svg from source" );
816816

817-
operation_class->flags = VIPS_OPERATION_NOCACHE;
817+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
818818

819819
load_class->is_a_source = vips_foreign_load_svg_source_is_a_source;
820820
load_class->header = vips_foreign_load_svg_source_header;

libvips/foreign/tiffload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ vips_foreign_load_tiff_source_class_init(
282282
object_class->description = _( "load tiff from source" );
283283
object_class->build = vips_foreign_load_tiff_source_build;
284284

285-
operation_class->flags = VIPS_OPERATION_NOCACHE;
285+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
286286

287287
load_class->is_a_source = vips_foreign_load_tiff_source_is_a_source;
288288

libvips/foreign/vips2magick.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ vips_foreign_save_magick_class_init( VipsForeignSaveMagickClass *class )
470470
/* *magick is fuzzed, but it's such a huge thing it's safer to
471471
* disable it.
472472
*/
473-
operation_class->flags = VIPS_OPERATION_UNTRUSTED;
473+
operation_class->flags |= VIPS_OPERATION_UNTRUSTED;
474474

475475
/* We need to be well to the back of the queue since vips's
476476
* dedicated savers are usually preferable.
@@ -686,7 +686,7 @@ vips_foreign_save_magick_bmp_file_class_init(
686686

687687
/* Hide from UI.
688688
*/
689-
operation_class->flags = VIPS_OPERATION_DEPRECATED;
689+
operation_class->flags |= VIPS_OPERATION_DEPRECATED;
690690
}
691691

692692
static void
@@ -719,7 +719,7 @@ vips_foreign_save_magick_bmp_buffer_class_init(
719719

720720
/* Hide from UI.
721721
*/
722-
operation_class->flags = VIPS_OPERATION_DEPRECATED;
722+
operation_class->flags |= VIPS_OPERATION_DEPRECATED;
723723
}
724724

725725
static void
@@ -752,7 +752,7 @@ vips_foreign_save_magick_gif_file_class_init(
752752

753753
/* Hide from UI.
754754
*/
755-
operation_class->flags = VIPS_OPERATION_DEPRECATED;
755+
operation_class->flags |= VIPS_OPERATION_DEPRECATED;
756756
}
757757

758758
static void
@@ -785,7 +785,7 @@ vips_foreign_save_magick_gif_buffer_class_init(
785785

786786
/* Hide from UI.
787787
*/
788-
operation_class->flags = VIPS_OPERATION_DEPRECATED;
788+
operation_class->flags |= VIPS_OPERATION_DEPRECATED;
789789
}
790790

791791
static void

libvips/foreign/vipsload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ vips_foreign_load_vips_source_class_init( VipsForeignLoadVipsClass *class )
302302
object_class->description = _( "load vips from source" );
303303
object_class->build = vips_foreign_load_vips_source_build;
304304

305-
operation_class->flags = VIPS_OPERATION_NOCACHE;
305+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
306306

307307
load_class->is_a_source =
308308
vips_foreign_load_vips_source_is_a_source;

libvips/foreign/webpload.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ vips_foreign_load_webp_source_class_init(
264264
object_class->description = _( "load webp from source" );
265265
object_class->build = vips_foreign_load_webp_source_build;
266266

267-
operation_class->flags = VIPS_OPERATION_NOCACHE;
267+
operation_class->flags |= VIPS_OPERATION_NOCACHE;
268268

269269
load_class->is_a_source = vips__iswebp_source;
270270

0 commit comments

Comments
 (0)