libytnef: properly initialize struct
Call TNEFInitialize on the TNEFStruct before use to make sure all fields are initialized to their default values. Since libytnef 2.0.0 zero-initialization is not sufficient.
This commit is contained in:
parent
7638d513ed
commit
b167550cab
2 changed files with 5 additions and 3 deletions
|
|
@ -44,11 +44,13 @@ namespace Ytnef {
|
||||||
|
|
||||||
[CCode (cname = "TNEFStruct", destroy_function="TNEFFree", has_type_id = false)]
|
[CCode (cname = "TNEFStruct", destroy_function="TNEFFree", has_type_id = false)]
|
||||||
public struct TNEFStruct {
|
public struct TNEFStruct {
|
||||||
|
[CCode (cname = "TNEFInitialize")]
|
||||||
|
public TNEFStruct();
|
||||||
Attachment starting_attach;
|
Attachment starting_attach;
|
||||||
}
|
}
|
||||||
|
|
||||||
[CCode (cname = "TNEFParseMemory", has_type_id = false)]
|
[CCode (cname = "TNEFParseMemory", has_type_id = false)]
|
||||||
public static int ParseMemory(uint8[] data, out TNEFStruct tnef);
|
public static int ParseMemory(uint8[] data, ref TNEFStruct tnef);
|
||||||
|
|
||||||
[CCode (cname = "MAPIFindProperty")]
|
[CCode (cname = "MAPIFindProperty")]
|
||||||
public static unowned VariableLength* MAPIFindProperty(MAPIProps MAPI, uint tag);
|
public static unowned VariableLength* MAPIFindProperty(MAPIProps MAPI, uint tag);
|
||||||
|
|
|
||||||
|
|
@ -1024,8 +1024,8 @@ public class Geary.RFC822.Message : BaseObject, EmailHeaderSet {
|
||||||
GMime.StreamMem stream = new GMime.StreamMem();
|
GMime.StreamMem stream = new GMime.StreamMem();
|
||||||
((GMime.Part) root).get_content().write_to_stream(stream);
|
((GMime.Part) root).get_content().write_to_stream(stream);
|
||||||
ByteArray tnef_data = stream.get_byte_array();
|
ByteArray tnef_data = stream.get_byte_array();
|
||||||
Ytnef.TNEFStruct tn;
|
Ytnef.TNEFStruct tn = Ytnef.TNEFStruct();
|
||||||
if (Ytnef.ParseMemory(tnef_data.data, out tn) == 0) {
|
if (Ytnef.ParseMemory(tnef_data.data, ref tn) == 0) {
|
||||||
for (unowned Ytnef.Attachment? a = tn.starting_attach.next; a != null; a = a.next) {
|
for (unowned Ytnef.Attachment? a = tn.starting_attach.next; a != null; a = a.next) {
|
||||||
attachments.add(new Part(tnef_attachment_to_gmime_part(a)));
|
attachments.add(new Part(tnef_attachment_to_gmime_part(a)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue