Print this page
12724 update smatch to 0.6.1-rc1-il-5

@@ -526,11 +526,11 @@
                 run_sql(save_vals, &db_info,
                         "select value from mtag_data where tag = %lld and offset = %d and type = %d;",
                         tag, arg_offset, DATA_VALUE);
         } else {  /* presumably the parameter is a struct pointer */
                 run_sql(save_vals, &db_info,
-                        "select offset, value from mtag_data where tag = %lld and type = %d;",
+                        "select offset, value from mtag_data where tag = %lld and type = %d order by offset;",
                         tag, DATA_VALUE);
         }
 
         if (db_info.prev_offset != -1)
                 set_param_value(&db_info.stree, arg, db_info.prev_offset, db_info.rl);

@@ -577,11 +577,11 @@
         while (true) {
                 container_offset = strtoul(p, &p, 0);
                 if (local_debug)
                         sm_msg("%s: cur_tag = %llu container_offset = %d",
                                __func__, cur_tag, container_offset);
-                if (!mtag_map_select_container(cur_tag, container_offset, &container_tag))
+                if (!mtag_map_select_container(cur_tag, -container_offset, &container_tag))
                         return;
                 cur_tag = container_tag;
                 if (local_debug)
                         sm_msg("%s: container_tag = %llu p = '%s'",
                                __func__, container_tag, p);

@@ -601,11 +601,11 @@
                 return;
 
         if (!arg_offset || star) {
                 arg_tag = container_tag;
         } else {
-                if (!mtag_map_select_tag(container_tag, -arg_offset, &arg_tag))
+                if (!mtag_map_select_tag(container_tag, arg_offset, &arg_tag))
                         return;
         }
 
         stree = load_tag_info_sym(arg_tag, arg, arg_offset, star);
         FOR_EACH_SM(stree, sm) {