Print this page
11506 smatch resync

*** 50,62 **** { struct smatch_state *state; struct modification_data *data; char *name; - state = __alloc_smatch_state(0); expr = strip_expr(expr); name = expr_to_str(expr); state->name = alloc_sname(name); free_string(name); data = __alloc_modification_data(0); data->prev = prev; --- 50,65 ---- { struct smatch_state *state; struct modification_data *data; char *name; expr = strip_expr(expr); name = expr_to_str(expr); + if (!name) + return NULL; + + state = __alloc_smatch_state(0); state->name = alloc_sname(name); free_string(name); data = __alloc_modification_data(0); data->prev = prev;
*** 176,186 **** __in_fake_assign++; call_modification_hooks_name_sym(name, sym, expr, BOTH); __in_fake_assign--; ! other_name = map_long_to_short_name_sym(name, sym, &other_sym); if (other_name) { __in_fake_assign++; call_modification_hooks_name_sym(other_name, other_sym, expr, BOTH); __in_fake_assign--; free_string(other_name); --- 179,189 ---- __in_fake_assign++; call_modification_hooks_name_sym(name, sym, expr, BOTH); __in_fake_assign--; ! other_name = get_other_name_sym(name, sym, &other_sym); if (other_name) { __in_fake_assign++; call_modification_hooks_name_sym(other_name, other_sym, expr, BOTH); __in_fake_assign--; free_string(other_name);
*** 277,286 **** --- 280,291 ---- void register_modification_hooks(int id) { my_id = id; + set_dynamic_states(my_id); + hooks = malloc((num_checks + 1) * sizeof(*hooks)); memset(hooks, 0, (num_checks + 1) * sizeof(*hooks)); hooks_late = malloc((num_checks + 1) * sizeof(*hooks)); memset(hooks_late, 0, (num_checks + 1) * sizeof(*hooks));