Changeset 4864ea5 in subsurface


Ignore:
Timestamp:
Apr 4, 2017, 10:54:55 AM (7 weeks ago)
Author:
Dirk Hohndel <dirk@…>
Branches:
master
Children:
e4086dc
Parents:
8c94fa2
git-author:
Salvador Cuñat <salvador.cunat@…> (04/02/17 14:30:24)
git-committer:
Dirk Hohndel <dirk@…> (04/04/17 10:54:55)
Message:

smtk-import Fix wreck data import

It was assumed that every data field in a wreck table was filled or
zeroed. This assumption is actually false, so this patch adds testing
for the existence of strings before working with them.

Signed-off-by: Salvador Cuñat <salvador.cunat@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • smtk-import/smartrak.c

    re2fe196 r4864ea5  
    267267        while (mdb_fetch_row(table)) {
    268268                if (!strcmp(col[1]->bind_ptr, site_idx)) {
    269                         tmp = copy_string(col[1]->bind_ptr);
    270269                        notes = smtk_concat_str(notes, "\n", translate("gettextFromC", "Wreck Data"));
    271270                        for (i = 3; i < 16; i++) {
     
    273272                                case 3:
    274273                                case 4:
    275                                         if (memcmp(col[i]->bind_ptr, "\0", 1))
    276                                                 notes = smtk_concat_str(notes, "\n", "%s: %s", wreck_fields[i - 3], strtok(copy_string(col[i]->bind_ptr), " "));
     274                                        tmp = copy_string(col[i]->bind_ptr);
     275                                        if (tmp)
     276                                                notes = smtk_concat_str(notes, "\n", "%s: %s", wreck_fields[i - 3], strtok(tmp , " "));
     277                                        free(tmp);
    277278                                        break;
    278279                                case 5:
    279                                         if (strcmp(rindex(copy_string(col[i]->bind_ptr), ' '), "\0"))
    280                                                 notes = smtk_concat_str(notes, "\n", "%s: %s", wreck_fields[i - 3], rindex(col[i]->bind_ptr, ' '));
     280                                        tmp = copy_string(col[i]->bind_ptr);
     281                                        if (tmp)
     282                                                notes = smtk_concat_str(notes, "\n", "%s: %s", wreck_fields[i - 3], rindex(tmp, ' '));
     283                                        free(tmp);
    281284                                        break;
    282285                                case 6 ... 9:
    283286                                case 14:
    284287                                case 15:
    285                                         if (memcmp(col[i]->bind_ptr, "\0", 1))
    286                                                 notes = smtk_concat_str(notes, "\n", "%s: %s", wreck_fields[i - 3], col[i]->bind_ptr);
     288                                        tmp = copy_string(col[i]->bind_ptr);
     289                                        if (tmp)
     290                                                notes = smtk_concat_str(notes, "\n", "%s: %s", wreck_fields[i - 3], tmp);
     291                                        free(tmp);
    287292                                        break;
    288293                                default:
     
    301306        mdb_free_tabledef(table);
    302307        free(notes);
    303         free(tmp);
    304308}
    305309
Note: See TracChangeset for help on using the changeset viewer.