* src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
* src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy of `base' string for decrypting to not modify the original data.
This commit is contained in:
parent
e274290d71
commit
556ad08f03
|
@ -1,3 +1,12 @@
|
||||||
|
2002-01-28 Roberto Alameda <ojancano@geekmail.de>
|
||||||
|
|
||||||
|
* src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
|
||||||
|
|
||||||
|
2002-01-28 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
* src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy
|
||||||
|
of `base' string for decrypting to not modify the original data.
|
||||||
|
|
||||||
2002-01-27 Giuliano Pochini <pochini@shiny.it>
|
2002-01-27 Giuliano Pochini <pochini@shiny.it>
|
||||||
|
|
||||||
* src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
|
* src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
|
||||||
|
|
|
@ -971,7 +971,7 @@
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* we use a T1_Table to store our charnames */
|
/* we use a T1_Table to store our charnames */
|
||||||
encode->num_chars = count;
|
loader->num_chars = encode->num_chars = count;
|
||||||
if ( ALLOC_ARRAY( encode->char_index, count, FT_Short ) ||
|
if ( ALLOC_ARRAY( encode->char_index, count, FT_Short ) ||
|
||||||
ALLOC_ARRAY( encode->char_name, count, FT_String* ) ||
|
ALLOC_ARRAY( encode->char_name, count, FT_String* ) ||
|
||||||
( error = psaux->ps_table_funcs->init(
|
( error = psaux->ps_table_funcs->init(
|
||||||
|
@ -1164,12 +1164,21 @@
|
||||||
/* */
|
/* */
|
||||||
if ( face->type1.private_dict.lenIV >= 0 )
|
if ( face->type1.private_dict.lenIV >= 0 )
|
||||||
{
|
{
|
||||||
psaux->t1_decrypt( base, size, 4330 );
|
FT_Byte* temp;
|
||||||
size -= face->type1.private_dict.lenIV;
|
|
||||||
base += face->type1.private_dict.lenIV;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = T1_Add_Table( table, index, base, size );
|
|
||||||
|
/* t1_decrypt() shouldn't write to base -- make temporary copy */
|
||||||
|
if ( ALLOC( temp, size ) )
|
||||||
|
goto Fail;
|
||||||
|
MEM_Copy( temp, base, size );
|
||||||
|
psaux->t1_decrypt( temp, size, 4330 );
|
||||||
|
size -= face->type1.private_dict.lenIV;
|
||||||
|
error = T1_Add_Table( table, index,
|
||||||
|
temp + face->type1.private_dict.lenIV, size );
|
||||||
|
FREE( temp );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
error = T1_Add_Table( table, index, base, size );
|
||||||
if ( error )
|
if ( error )
|
||||||
goto Fail;
|
goto Fail;
|
||||||
}
|
}
|
||||||
|
@ -1296,12 +1305,21 @@
|
||||||
|
|
||||||
if ( face->type1.private_dict.lenIV >= 0 )
|
if ( face->type1.private_dict.lenIV >= 0 )
|
||||||
{
|
{
|
||||||
psaux->t1_decrypt( base, size, 4330 );
|
FT_Byte* temp;
|
||||||
size -= face->type1.private_dict.lenIV;
|
|
||||||
base += face->type1.private_dict.lenIV;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = T1_Add_Table( code_table, n, base, size );
|
|
||||||
|
/* t1_decrypt() shouldn't write to base -- make temporary copy */
|
||||||
|
if ( ALLOC( temp, size ) )
|
||||||
|
goto Fail;
|
||||||
|
MEM_Copy( temp, base, size );
|
||||||
|
psaux->t1_decrypt( temp, size, 4330 );
|
||||||
|
size -= face->type1.private_dict.lenIV;
|
||||||
|
error = T1_Add_Table( code_table, n,
|
||||||
|
temp + face->type1.private_dict.lenIV, size );
|
||||||
|
FREE( temp );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
error = T1_Add_Table( code_table, n, base, size );
|
||||||
if ( error )
|
if ( error )
|
||||||
goto Fail;
|
goto Fail;
|
||||||
|
|
||||||
|
@ -1425,10 +1443,8 @@
|
||||||
|
|
||||||
/* we added a glyph. */
|
/* we added a glyph. */
|
||||||
loader->num_glyphs = n + 1;
|
loader->num_glyphs = n + 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Fail:
|
Fail:
|
||||||
|
@ -1734,7 +1750,7 @@
|
||||||
type1->encoding.code_first = min_char;
|
type1->encoding.code_first = min_char;
|
||||||
type1->encoding.code_last = max_char;
|
type1->encoding.code_last = max_char;
|
||||||
type1->encoding.num_chars = loader.num_chars;
|
type1->encoding.num_chars = loader.num_chars;
|
||||||
}
|
}
|
||||||
|
|
||||||
Exit:
|
Exit:
|
||||||
t1_done_loader( &loader );
|
t1_done_loader( &loader );
|
||||||
|
|
Loading…
Reference in New Issue