atoi -> strtoul with error checking
This commit is contained in:
		
							parent
							
								
									0c2d425f32
								
							
						
					
					
						commit
						83820ffb92
					
				
							
								
								
									
										12
									
								
								termite.cc
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								termite.cc
									
									
									
									
									
								
							@ -132,12 +132,16 @@ static void find_urls(VteTerminal *vte, search_panel_info *panel_info) {
 | 
				
			|||||||
    g_array_free(attributes, TRUE);
 | 
					    g_array_free(attributes, TRUE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void launch_url(unsigned id, search_panel_info *info) {
 | 
					static void launch_url(const char *text, search_panel_info *info) {
 | 
				
			||||||
    if (id < info->url_list.size()) {
 | 
					    char *end;
 | 
				
			||||||
 | 
					    errno = 0;
 | 
				
			||||||
 | 
					    unsigned long id = strtoul(text, &end, 10);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!errno && *end == '\0' && id < info->url_list.size()) {
 | 
				
			||||||
        browser_cmd[1] = info->url_list[id].url;
 | 
					        browser_cmd[1] = info->url_list[id].url;
 | 
				
			||||||
        g_spawn_async(NULL, (char **)browser_cmd, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
 | 
					        g_spawn_async(NULL, (char **)browser_cmd, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        g_printerr("url not found\n");
 | 
					        g_printerr("url hint invalid\n");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -579,7 +583,7 @@ gboolean entry_key_press_cb(GtkEntry *entry, GdkEventKey *event, search_panel_in
 | 
				
			|||||||
                vte_terminal_feed_child(info->vte, text, -1);
 | 
					                vte_terminal_feed_child(info->vte, text, -1);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case overlay_mode::urlselect:
 | 
					            case overlay_mode::urlselect:
 | 
				
			||||||
                launch_url((unsigned)atoi(text) - 1, info);
 | 
					                launch_url(text, info);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case overlay_mode::hidden:
 | 
					            case overlay_mode::hidden:
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user