Skip to content

Instantly share code, notes, and snippets.

@MoralCode
Created January 23, 2021 03:50
Show Gist options
  • Select an option

  • Save MoralCode/e85fb37d1931e3a41e8b2e89757aa3ed to your computer and use it in GitHub Desktop.

Select an option

Save MoralCode/e85fb37d1931e3a41e8b2e89757aa3ed to your computer and use it in GitHub Desktop.

Revisions

  1. MoralCode created this gist Jan 23, 2021.
    3 changes: 3 additions & 0 deletions Makefile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,3 @@
    bug: bug.c
    gcc bug.c -lvc -o bug

    8 changes: 8 additions & 0 deletions actual_output.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    $ ./bug
    VERSION: 3.0
    PRODID: -//Apple Inc.//iPhone OS 13.3.1//EN
    N: ;Aaaaaaaaasaaa;;;
    FN: Aaaaaaaaasaaa
    PHOTO: /9j/wAARCAFAAUADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QA
    - ENCODING: b
    - TYPE: JPEG
    31 changes: 31 additions & 0 deletions bug.c
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    #include <stdio.h>
    #include <vc.h>

    int main(int argc, char **argv) {

    FILE *fptr;
    fptr = fopen("photo.vcf", "r");
    vc_component *component = parse_vcard_file(fptr);

    vc_component *next = vc_get_next(component);

    while (next) {
    printf("%s: ", vc_get_name(next));

    printf("%s\n", vc_get_value(next));

    vc_component_param *nextparam = vc_get_param(next);


    while (nextparam) {
    printf("- %s: ", vc_param_get_name(nextparam));


    printf("%s\n", vc_param_get_value(nextparam));
    nextparam = vc_param_get_next(nextparam);
    }

    next = vc_get_next(next);
    }
    return 0;
    }
    154 changes: 154 additions & 0 deletions photo.vcf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,154 @@
    BEGIN:VCARD
    VERSION:3.0
    PRODID:-//Apple Inc.//iPhone OS 13.3.1//EN
    N:;Aaaaaaaaasaaa;;;
    FN:Aaaaaaaaasaaa
    PHOTO;ENCODING=b;TYPE=JPEG:/9j/wAARCAFAAUADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QA
    tRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
    FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJ
    ipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx
    8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcF
    BAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygp
    KjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJma
    oqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9sA
    QwACAgICAgIDAgIDBAMDAwQFBAQEBAUHBQUFBQUHCAcHBwcHBwgICAgICAgICgoKCgoKCwsLCwsN
    DQ0NDQ0NDQ0N/9sAQwECAgIDAwMGAwMGDQkHCQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
    DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N/90ABAAU/9oADAMBAAIRAxEAPwD8Mugx3oIA564ppAHTrS9D
    x3riWx7LdxT06c0oyB70hyBnNOGMZpSWmhLHHceSMVHtI59alYgDOaFI20RVioochOM0rHt+tNwR
    S4HXNUUNU88c1YyCOetQgZqQFRyD0oJlEZ0JyfpUoIIqPlj7Uqknjt3oJZaQgL059KZwCcfnUa7h
    x70oHU9alvQt3sTjAbnvSFhnAH6UwMCozTmJyDS5u4PSI7dngcVKWAXFQ5z8w/KmnPQ0OSuKT0LK
    Yxkd6kViB81Vkzk8Y4qVQGwf1qmrlkrc9OaVfkAP50KQg/KkJHXrUvTQCfdSq56H0qOTZ05pBwN1
    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
    IprMMgUwZNMPP504tdTXmuf/2Q==
    END:VCARD