X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafm-udb.c;h=7f4a16ea783372a2e0a6188be945f5c3d3a4b7ff;hb=refs%2Fchanges%2F77%2F14377%2F2;hp=638387eba007f4f0ce147821fe04efa0babfed7b;hpb=e29f9aa18cc1b6f95a50d38c9a83294e0995b497;p=src%2Fapp-framework-main.git diff --git a/src/afm-udb.c b/src/afm-udb.c index 638387e..7f4a16e 100644 --- a/src/afm-udb.c +++ b/src/afm-udb.c @@ -182,17 +182,25 @@ static int add_fields_of_content( { char *name, *value, *read, *write; - read = strstr(content, x_afm_prefix); - while (read) { + /* start at the beginning */ + read = content; + for (;;) { + /* search the next key */ + read = strstr(read, x_afm_prefix); + if (!read) + return 0; + + /* search to equal */ name = read + x_afm_prefix_length; value = strchr(name, '='); if (value == NULL) - read = strstr(name, x_afm_prefix); + read = name; /* not found */ else { + /* get the value (translate it) */ *value++ = 0; read = write = value; while(*read && *read != '\n') { - if (read[0] != '\\') + if (*read != '\\') *write++ = *read++; else { switch(*++read) { @@ -203,13 +211,14 @@ static int add_fields_of_content( read += !!*read; } } - read = strstr(read, x_afm_prefix); + read += !!*read; *write = 0; + + /* add the found field now */ if (add_field(priv, pub, name, value) < 0) return -1; } } - return 0; } /*