Coverage Report

Created: 2026-05-16 07:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/imagemagick/MagickCore/delegate-private.h
Line
Count
Source
1
/*
2
  Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
3
  dedicated to making software imaging solutions freely available.
4
5
  You may not use this file except in compliance with the License.  You may
6
  obtain a copy of the License at
7
8
    https://imagemagick.org/license/
9
10
  Unless required by applicable law or agreed to in writing, software
11
  distributed under the License is distributed on an "AS IS" BASIS,
12
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
  See the License for the specific language governing permissions and
14
  limitations under the License.
15
16
  MagickCore delegates private methods.
17
*/
18
#ifndef MAGICKCORE_DELEGATE_PRIVATE_H
19
#define MAGICKCORE_DELEGATE_PRIVATE_H
20
21
#include "MagickCore/locale_.h"
22
#include "MagickCore/string_.h"
23
24
#if defined(MAGICKCORE_GS_DELEGATE)
25
#include "ghostscript/iapi.h"
26
#include "ghostscript/ierrors.h"
27
#else
28
typedef struct gsapi_revision_s
29
{
30
  const char *product;
31
  const char *copyright;
32
  long revision;
33
  long revisiondate;
34
} gsapi_revision_t;
35
#endif
36
37
#if defined(__cplusplus) || defined(c_plusplus)
38
extern "C" {
39
#endif
40
41
#ifndef gs_main_instance_DEFINED
42
# define gs_main_instance_DEFINED
43
typedef struct gs_main_instance_s
44
  gs_main_instance;
45
#endif
46
47
#if !defined(MagickDLLCall)
48
#  if defined(MAGICKCORE_WINDOWS_SUPPORT)
49
#    define MagickDLLCall __stdcall
50
#  else
51
#    define MagickDLLCall
52
#  endif
53
#endif
54
55
typedef struct _GhostInfo
56
{
57
  void
58
    (MagickDLLCall *delete_instance)(gs_main_instance *);
59
60
  int
61
    (MagickDLLCall *exit)(gs_main_instance *);
62
63
  int
64
    (MagickDLLCall *init_with_args)(gs_main_instance *,int,char **);
65
66
  int
67
    (MagickDLLCall *new_instance)(gs_main_instance **,void *);
68
69
  int
70
    (MagickDLLCall *run_string)(gs_main_instance *,const char *,int,int *);
71
72
  int
73
    (MagickDLLCall* set_arg_encoding)(gs_main_instance*, int);
74
75
  int
76
    (MagickDLLCall *set_stdio)(gs_main_instance *,int(MagickDLLCall *)(void *,
77
      char *,int),int(MagickDLLCall *)(void *,const char *,int),
78
      int(MagickDLLCall *)(void *,const char *,int));
79
80
  int
81
    (MagickDLLCall *revision)(gsapi_revision_t *, int);
82
} GhostInfo;
83
84
static inline char *SanitizeDelegateString(const char *source)
85
63
{
86
63
  char
87
63
    *sanitize_source;
88
89
63
  const char
90
63
    *q;
91
92
63
  char
93
63
    *p;
94
95
63
  static char
96
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
97
    allowlist[] =
98
      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "
99
      "$-_.+!;*(),{}|^~[]`\'><#%/?:@&=";
100
#else
101
63
    allowlist[] =
102
63
      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "
103
63
      "$-_.+!;*(),{}|\\^~[]`\"><#%/?:@&=";
104
63
#endif
105
106
63
  sanitize_source=AcquireString(source);
107
63
  p=sanitize_source;
108
63
  q=sanitize_source+strlen(sanitize_source);
109
63
  for (p+=strspn(p,allowlist); p != q; p+=(ptrdiff_t) strspn(p,allowlist))
110
0
    *p='_';
111
63
  return(sanitize_source);
112
63
}
Unexecuted instantiation: magick-image.c:SanitizeDelegateString
Unexecuted instantiation: animate.c:SanitizeDelegateString
Unexecuted instantiation: annotate.c:SanitizeDelegateString
Unexecuted instantiation: blob.c:SanitizeDelegateString
Unexecuted instantiation: cache.c:SanitizeDelegateString
Unexecuted instantiation: color.c:SanitizeDelegateString
Unexecuted instantiation: composite.c:SanitizeDelegateString
Unexecuted instantiation: configure.c:SanitizeDelegateString
Unexecuted instantiation: constitute.c:SanitizeDelegateString
delegate.c:SanitizeDelegateString
Line
Count
Source
85
63
{
86
63
  char
87
63
    *sanitize_source;
88
89
63
  const char
90
63
    *q;
91
92
63
  char
93
63
    *p;
94
95
63
  static char
96
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
97
    allowlist[] =
98
      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "
99
      "$-_.+!;*(),{}|^~[]`\'><#%/?:@&=";
100
#else
101
63
    allowlist[] =
102
63
      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "
103
63
      "$-_.+!;*(),{}|\\^~[]`\"><#%/?:@&=";
104
63
#endif
105
106
63
  sanitize_source=AcquireString(source);
107
63
  p=sanitize_source;
108
63
  q=sanitize_source+strlen(sanitize_source);
109
63
  for (p+=strspn(p,allowlist); p != q; p+=(ptrdiff_t) strspn(p,allowlist))
110
0
    *p='_';
111
63
  return(sanitize_source);
112
63
}
Unexecuted instantiation: display.c:SanitizeDelegateString
Unexecuted instantiation: distribute-cache.c:SanitizeDelegateString
Unexecuted instantiation: effect.c:SanitizeDelegateString
Unexecuted instantiation: exception.c:SanitizeDelegateString
Unexecuted instantiation: feature.c:SanitizeDelegateString
Unexecuted instantiation: identify.c:SanitizeDelegateString
Unexecuted instantiation: image.c:SanitizeDelegateString
Unexecuted instantiation: locale.c:SanitizeDelegateString
Unexecuted instantiation: log.c:SanitizeDelegateString
Unexecuted instantiation: magic.c:SanitizeDelegateString
Unexecuted instantiation: magick.c:SanitizeDelegateString
Unexecuted instantiation: coder.c:SanitizeDelegateString
Unexecuted instantiation: matrix.c:SanitizeDelegateString
Unexecuted instantiation: memory.c:SanitizeDelegateString
Unexecuted instantiation: mime.c:SanitizeDelegateString
Unexecuted instantiation: module.c:SanitizeDelegateString
Unexecuted instantiation: montage.c:SanitizeDelegateString
Unexecuted instantiation: morphology.c:SanitizeDelegateString
Unexecuted instantiation: opencl.c:SanitizeDelegateString
Unexecuted instantiation: policy.c:SanitizeDelegateString
Unexecuted instantiation: property.c:SanitizeDelegateString
Unexecuted instantiation: random.c:SanitizeDelegateString
Unexecuted instantiation: resample.c:SanitizeDelegateString
Unexecuted instantiation: resize.c:SanitizeDelegateString
Unexecuted instantiation: resource.c:SanitizeDelegateString
Unexecuted instantiation: semaphore.c:SanitizeDelegateString
Unexecuted instantiation: shear.c:SanitizeDelegateString
Unexecuted instantiation: string.c:SanitizeDelegateString
Unexecuted instantiation: timer.c:SanitizeDelegateString
Unexecuted instantiation: token.c:SanitizeDelegateString
Unexecuted instantiation: type.c:SanitizeDelegateString
Unexecuted instantiation: utility.c:SanitizeDelegateString
Unexecuted instantiation: version.c:SanitizeDelegateString
Unexecuted instantiation: xml-tree.c:SanitizeDelegateString
Unexecuted instantiation: xwindow.c:SanitizeDelegateString
Unexecuted instantiation: ashlar.c:SanitizeDelegateString
Unexecuted instantiation: cals.c:SanitizeDelegateString
Unexecuted instantiation: cut.c:SanitizeDelegateString
Unexecuted instantiation: dcm.c:SanitizeDelegateString
Unexecuted instantiation: dng.c:SanitizeDelegateString
Unexecuted instantiation: histogram.c:SanitizeDelegateString
Unexecuted instantiation: icon.c:SanitizeDelegateString
Unexecuted instantiation: inline.c:SanitizeDelegateString
Unexecuted instantiation: mat.c:SanitizeDelegateString
Unexecuted instantiation: ora.c:SanitizeDelegateString
Unexecuted instantiation: pdf.c:SanitizeDelegateString
Unexecuted instantiation: pes.c:SanitizeDelegateString
Unexecuted instantiation: ps.c:SanitizeDelegateString
Unexecuted instantiation: pwp.c:SanitizeDelegateString
Unexecuted instantiation: screenshot.c:SanitizeDelegateString
Unexecuted instantiation: sfw.c:SanitizeDelegateString
Unexecuted instantiation: svg.c:SanitizeDelegateString
Unexecuted instantiation: url.c:SanitizeDelegateString
Unexecuted instantiation: video.c:SanitizeDelegateString
Unexecuted instantiation: wpg.c:SanitizeDelegateString
Unexecuted instantiation: xps.c:SanitizeDelegateString
Unexecuted instantiation: tiff.c:SanitizeDelegateString
Unexecuted instantiation: webp.c:SanitizeDelegateString
113
114
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
115
static inline void FormatSanitizedDelegateOption(char *string,
116
  const size_t length,const char *windows_format,
117
  const char *magick_unused(non_windows_format),const char *option)
118
{
119
  char
120
    *sanitized_option;
121
122
  magick_unreferenced(non_windows_format);
123
  sanitized_option=SanitizeDelegateString(option);
124
  (void) FormatLocaleString(string,length,windows_format,sanitized_option);
125
  sanitized_option=DestroyString(sanitized_option);
126
}
127
#else
128
static inline void FormatSanitizedDelegateOption(char *string,
129
  const size_t length,const char *magick_unused(windows_format),
130
  const char *non_windows_format,const char *option)
131
0
{
132
0
  char
133
0
    *sanitized_option;
134
135
0
  magick_unreferenced(windows_format);
136
0
  sanitized_option=SanitizeDelegateString(option);
137
0
  (void) FormatLocaleString(string,length,non_windows_format,sanitized_option);
138
0
  sanitized_option=DestroyString(sanitized_option);
139
0
}
Unexecuted instantiation: magick-image.c:FormatSanitizedDelegateOption
Unexecuted instantiation: animate.c:FormatSanitizedDelegateOption
Unexecuted instantiation: annotate.c:FormatSanitizedDelegateOption
Unexecuted instantiation: blob.c:FormatSanitizedDelegateOption
Unexecuted instantiation: cache.c:FormatSanitizedDelegateOption
Unexecuted instantiation: color.c:FormatSanitizedDelegateOption
Unexecuted instantiation: composite.c:FormatSanitizedDelegateOption
Unexecuted instantiation: configure.c:FormatSanitizedDelegateOption
Unexecuted instantiation: constitute.c:FormatSanitizedDelegateOption
Unexecuted instantiation: delegate.c:FormatSanitizedDelegateOption
Unexecuted instantiation: display.c:FormatSanitizedDelegateOption
Unexecuted instantiation: distribute-cache.c:FormatSanitizedDelegateOption
Unexecuted instantiation: effect.c:FormatSanitizedDelegateOption
Unexecuted instantiation: exception.c:FormatSanitizedDelegateOption
Unexecuted instantiation: feature.c:FormatSanitizedDelegateOption
Unexecuted instantiation: identify.c:FormatSanitizedDelegateOption
Unexecuted instantiation: image.c:FormatSanitizedDelegateOption
Unexecuted instantiation: locale.c:FormatSanitizedDelegateOption
Unexecuted instantiation: log.c:FormatSanitizedDelegateOption
Unexecuted instantiation: magic.c:FormatSanitizedDelegateOption
Unexecuted instantiation: magick.c:FormatSanitizedDelegateOption
Unexecuted instantiation: coder.c:FormatSanitizedDelegateOption
Unexecuted instantiation: matrix.c:FormatSanitizedDelegateOption
Unexecuted instantiation: memory.c:FormatSanitizedDelegateOption
Unexecuted instantiation: mime.c:FormatSanitizedDelegateOption
Unexecuted instantiation: module.c:FormatSanitizedDelegateOption
Unexecuted instantiation: montage.c:FormatSanitizedDelegateOption
Unexecuted instantiation: morphology.c:FormatSanitizedDelegateOption
Unexecuted instantiation: opencl.c:FormatSanitizedDelegateOption
Unexecuted instantiation: policy.c:FormatSanitizedDelegateOption
Unexecuted instantiation: property.c:FormatSanitizedDelegateOption
Unexecuted instantiation: random.c:FormatSanitizedDelegateOption
Unexecuted instantiation: resample.c:FormatSanitizedDelegateOption
Unexecuted instantiation: resize.c:FormatSanitizedDelegateOption
Unexecuted instantiation: resource.c:FormatSanitizedDelegateOption
Unexecuted instantiation: semaphore.c:FormatSanitizedDelegateOption
Unexecuted instantiation: shear.c:FormatSanitizedDelegateOption
Unexecuted instantiation: string.c:FormatSanitizedDelegateOption
Unexecuted instantiation: timer.c:FormatSanitizedDelegateOption
Unexecuted instantiation: token.c:FormatSanitizedDelegateOption
Unexecuted instantiation: type.c:FormatSanitizedDelegateOption
Unexecuted instantiation: utility.c:FormatSanitizedDelegateOption
Unexecuted instantiation: version.c:FormatSanitizedDelegateOption
Unexecuted instantiation: xml-tree.c:FormatSanitizedDelegateOption
Unexecuted instantiation: xwindow.c:FormatSanitizedDelegateOption
Unexecuted instantiation: ashlar.c:FormatSanitizedDelegateOption
Unexecuted instantiation: cals.c:FormatSanitizedDelegateOption
Unexecuted instantiation: cut.c:FormatSanitizedDelegateOption
Unexecuted instantiation: dcm.c:FormatSanitizedDelegateOption
Unexecuted instantiation: dng.c:FormatSanitizedDelegateOption
Unexecuted instantiation: histogram.c:FormatSanitizedDelegateOption
Unexecuted instantiation: icon.c:FormatSanitizedDelegateOption
Unexecuted instantiation: inline.c:FormatSanitizedDelegateOption
Unexecuted instantiation: mat.c:FormatSanitizedDelegateOption
Unexecuted instantiation: ora.c:FormatSanitizedDelegateOption
Unexecuted instantiation: pdf.c:FormatSanitizedDelegateOption
Unexecuted instantiation: pes.c:FormatSanitizedDelegateOption
Unexecuted instantiation: ps.c:FormatSanitizedDelegateOption
Unexecuted instantiation: pwp.c:FormatSanitizedDelegateOption
Unexecuted instantiation: screenshot.c:FormatSanitizedDelegateOption
Unexecuted instantiation: sfw.c:FormatSanitizedDelegateOption
Unexecuted instantiation: svg.c:FormatSanitizedDelegateOption
Unexecuted instantiation: url.c:FormatSanitizedDelegateOption
Unexecuted instantiation: video.c:FormatSanitizedDelegateOption
Unexecuted instantiation: wpg.c:FormatSanitizedDelegateOption
Unexecuted instantiation: xps.c:FormatSanitizedDelegateOption
Unexecuted instantiation: tiff.c:FormatSanitizedDelegateOption
Unexecuted instantiation: webp.c:FormatSanitizedDelegateOption
140
#endif
141
142
extern MagickPrivate MagickBooleanType
143
  DelegateComponentGenesis(void);
144
145
extern MagickPrivate void
146
  DelegateComponentTerminus(void);
147
148
#if defined(__cplusplus) || defined(c_plusplus)
149
}
150
#endif
151
152
#endif