Don't dereference a null pointer. Remove g_assert()s copied from ui/gtk.
This fixes problems mentioned in bug 11044 but not the bug itself.
Change-Id: Iab75ab5cc6a184c8145a094b1c529a634e3c1c0d
Ping-Bug: 11044
Reviewed-on: https://code.wireshark.org/review/7610
Reviewed-by: Gerald Combs <gerald@wireshark.org>
When a different packet is changed, the packet scoped memory for tvbuff
is freed before clearing data source tabs. This results in
heap-use-after free when resizeEvent is called as a result of clearing
tabs for data sources.
Avoid resize events by hiding the tabs.
Caught with ASAN:
==18816==ERROR: AddressSanitizer: heap-use-after-free on address 0x6060004cd970 at pc 0x7fffebf46618 bp 0x7fffffffbb10 sp 0x7fffffffbb00
READ of size 4 at 0x6060004cd970 thread T0
#0 0x7fffebf46617 in tvb_captured_length epan/tvbuff.c:423
#1 0x773062 in ByteViewText::updateScrollbars() ui/qt/byte_view_text.cpp:489
#2 0x76f307 in ByteViewText::resizeEvent(QResizeEvent*) ui/qt/byte_view_text.cpp:197
...
#24 0x9f2348 in ByteViewText::~ByteViewText() ui/qt/byte_view_text.h:46
#25 0x9f23f5 in ByteViewText::~ByteViewText() ui/qt/byte_view_text.h:46
#26 0x76b9d6 in ByteViewTab::clear() ui/qt/byte_view_tab.cpp:54
#27 0x5de685 in PacketList::selectionChanged(QItemSelection const&, QItemSelection const&) ui/qt/packet_list.cpp:477
...
freed by thread T0 here:
...
#5 0x53d763 in cf_select_packet file.c:3827
#6 0x5ddfa5 in PacketList::selectionChanged(QItemSelection const&, QItemSelection const&) ui/qt/packet_list.cpp:454
#7 0x7fffe58ec980 (/usr/lib/libQt5Widgets.so.5+0x3bc980)
#8 0x7fffe4d55dd6 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) (/usr/lib/libQt5Core.so.5+0x23fdd6)
...
Change-Id: I9c1c01398713389de58259d13ebbaddd2d6e5c52
Reviewed-on: https://code.wireshark.org/review/7589
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Fixes error reported by UBSan:
ui/qt/packet_list.cpp:537:13: runtime error: load of value 190, which is not a valid value for type 'bool'
The method is apparently called earlier for other timers, resulting in
an error on startup. Initialize rows_inserted_ to avoid warnings when
the event is triggered later.
Change-Id: Iad919d79264ff1c3c17c9458c869d584234fcd5d
Reviewed-on: https://code.wireshark.org/review/7575
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
We currently load the expert indicator resources using an <img> tag.
According to QTBUG-36383 the @2x versions won't load unless you've built
with Qt 5.4.0 or later.
Change-Id: I003fd5d5f10e779f2e7ca6ba9fbb8e033df85b80
Reviewed-on: https://code.wireshark.org/review/7601
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This reverts commit 7d01a84d0e.
cmake doesn't get the dependencies right if the .qm files are gone
I'll work on this off-line and resubmit it as one commit rather than
trying to approach this step-by-step
Change-Id: Ibbd60163f910adbd571b3df2a980d64dbf1ea924
Reviewed-on: https://code.wireshark.org/review/7596
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Martin Kaiser <wireshark@kaiser.cx>
create the .qm files from the .ts files at compile time
for now, this works for autotools only
don't fail if Qt's lrelease tool is not available,
skip building the .qm files in this case
Change-Id: I869a6dc8220eb03e7ffc8bfdb2b6f3930f6cac72
Reviewed-on: https://code.wireshark.org/review/7460
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Martin Kaiser <wireshark@kaiser.cx>
http://doc.qt.io/qt-5/qwidget.html#updatesEnabled-prop says:
"Re-enabling updates implicitly calls update() on the widget."
This results in an infinite paintEvent series, hogging the CPU. Updating
the text twice does not seem to be a bad idea after all...
Change-Id: Id6cd733e68512f6963fc7d70d91859ca88ab8d38
Reviewed-on: https://code.wireshark.org/review/7581
Reviewed-by: Gerald Combs <gerald@wireshark.org>
If packet_list_moveto_end does anything it should scroll, not select. Make
it a no-op for the time being.
Change-Id: I149815c8f9e50e95a4a77b91b7582c44eed6db4b
Ping-Bug: 10601
Reviewed-on: https://code.wireshark.org/review/7564
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add the ability to set frame number types: none, request, or response.
Use the types to draw different related packet indicators in the packet
list.
Track the conversation in PacketListRecord. Use it to draw dashed lines
for unrelated frames.
Set frame number types for DNS and ICMP.
Instead of drawing a transparent QImage, alpha blend our foreground
color and draw directly in our painter. Blend more toward the foreground
color.
Add FRAMENUM_TYPE to checkAPIs.
Change-Id: I2495945bb436413e05d6ec697184a0b4fd5ad214
Reviewed-on: https://code.wireshark.org/review/7436
Reviewed-by: Gerald Combs <gerald@wireshark.org>
...otherwise the packet list and header columns don't match until
the next redraw.
Change-Id: Ice9c17c93badec93839be7c100ca27d8dc493daa
Reviewed-on: https://code.wireshark.org/review/7536
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add file_size_to_qstring and use it to show the file size. Add a
"shrinkable" property to LabelStack. Make the info status shrinkable.
Elide text so that long file paths don't widen the main window.
Change-Id: Ieb1caaf7e016384609d41fcabaa63d8f7a293eff
Bug: 10949
Reviewed-on: https://code.wireshark.org/review/7534
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
(2nd attempt: yesterday's builbot failure wasn't caused by this commit)
Change-Id: If87d6b55cc733ff35a3677860b4559a7082a15b2
Reviewed-on: https://code.wireshark.org/review/7502
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Martin Kaiser <wireshark@kaiser.cx>
Wireshark QT will close current opened file when popup open dialogue (File -> open), instead of keeping current file opened till new file is to be opened
Bug: 10962
Change-Id: I2062514ae648c95492e0160953c80d5303b8aba2
Reviewed-on: https://code.wireshark.org/review/7452
Petri-Dish: Michal Labedzki <michal.labedzki@tieto.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
Move the "find the frame" stuff to openPacketDialog(), and don't even
bother creating a new PacketDialog if we don't find the frame. This
should squelch Coverity CID 1270934, by giving up quickly if fdata is
null.
Change-Id: I4605ba7e271a55724f02cafed4122f9dd9b1b6f7
Reviewed-on: https://code.wireshark.org/review/7467
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This seems to break the build on OSX 10.5 (?)
This reverts commit b46bd2c7798d1c9e808625250928b40adf11a8bb.
Change-Id: I720de7182804c5c669934e3514e789f2da066867
Reviewed-on: https://code.wireshark.org/review/7459
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Change-Id: If87d6b55cc733ff35a3648860b4559a7082a19b0
Reviewed-on: https://code.wireshark.org/review/7458
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Martin Kaiser <wireshark@kaiser.cx>
Add an "Auto Scroll in Live Capture" action to the Go menu. It's in the
View menu in the GTK+ UI but it seems to make more sense as a navigation
item.
Use a timeout interval for automatic scrolling. I haven't run any tests
to see if this makes a difference but it would seem that the less
drawing we do during a high speed capture the better, particularly for
remote displays.
Update the x-stay-last icons.
Note that we might want to make prefs.capture_auto_scroll a "recent"
setting.
Mark auto_scroll_live and packet_list_check_end GTK+ only.
Bug: 10601
Co-authored-by: Gerald Combs <gerald@wireshark.org>
Change-Id: I645d27c0814f0e4a0d5b01ae68be366847e2522d
Reviewed-on: https://code.wireshark.org/review/7292
Reviewed-by: Gerald Combs <gerald@wireshark.org>
The code in question was copied from ui/gtk/capture_file_dlg.c. The dead
assignment there was removed in 68ceffe.
Change-Id: I605f181b623fbd87ab41505d30a79d7a4fe649df
Reviewed-on: https://code.wireshark.org/review/7419
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Convert "&" to "&&" in checkbox and radio button preference labels so
that they aren't interpreted as shortucts. Fixes
QKeySequence::mnemonic: "Attempt to dissect LCID 1&2 as srb1&2" contains multiple occurrences of '&'
Change-Id: Iacab6f81db01e6eca2cfdbaeda666f2e9c1016ed
Reviewed-on: https://code.wireshark.org/review/7346
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add PacketList::applyRecentColumnWidths which set the packet list
column widths from our recent settings. Make sure it gets called at
startup and when we change profiles.
Save the packet list header state so that we can restore it when we
reset the model (i.e. freezing and thawing) and load a new capture file.
Save the state when the user resizes a column. As a side effect this
works around a weird bug that adjusts the width of column 1 at an
inopportune time.
Add a profileChanging signal so that we can save the main window geometry
in each profile.
Get rid of MainWindow::configurationProfileChanged. It was unused.
Apply saved pane widths and heights. Note that we might want to add a
separate pair of recent settings for the Qt panes.
Use the last opened directory in the capture file dialog.
Git rid of some unneeded Q_UNUSEDs while we're here.
Bug: 10953
Change-Id: I812aff59818cf0b4d1598b580627d32728d2e9d7
Reviewed-on: https://code.wireshark.org/review/7247
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
Tested-by: Michal Labedzki <michal.labedzki@tieto.com>
Petri-Dish: Michal Labedzki <michal.labedzki@tieto.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Freeze and thaw the packet list when changing the layout. This has the
side effect of clearing the proto tree and byte view, which avoids
reading a bad tvb pointer. Note that we might want to add a cleanup
callback to free_data_sources.
Save and restore the current row. Add CaptureFile::currentRow. Fix a
couple of comparisons in PacketList.
Change-Id: I26f9b97ae5a7cdb4fb6e5e6e675570884900e995
Reviewed-on: https://code.wireshark.org/review/7337
Reviewed-by: Gerald Combs <gerald@wireshark.org>
QApplication::queryKeyboardModifiers() was introduced in 4.8.
Try to be compatibile with my old Qt 4.7.2.
Change-Id: Ie4abdd397cf2f10bb50132b09fed198d30425ee7
Reviewed-on: https://code.wireshark.org/review/7289
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
Check the return value of testCaptureFileClose in
MainWindow::openCaptureFile and add testCaptureFileClose to
MainWindow::closeEvent. Some of the file opening and closing behavior
still needs to be cleaned up but this should at least keep the user from
losing unsaved data.
Bug: 10944
Change-Id: I7d7b563a6b72f48b41a5a3aff2837655557869ff
Reviewed-on: https://code.wireshark.org/review/7283
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
As of g2c00d66 we create the main window after we've read the recent
settings. This means that we can get rid of the property animation
workaround in MainWindow::loadWindowGeometry.
Change-Id: I028061c5bdab9261f9394a1840bcdcb752a4f0c8
Reviewed-on: https://code.wireshark.org/review/7278
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Wait until the application has been initialized before checking
prefs.gui_update_enabled.
Change-Id: I6e52ba26064b6c5b882992c30c76b65d4a618848
Reviewed-on: https://code.wireshark.org/review/7268
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add a "flavor" (for lack of a better word) banner, which can be set at
build time via WIRESHARK_VERSION_FLAVOR / VERSION_FLAVOR. Set it to
"Development Build" by default. This effectively migrates the
"DEVELOPMENT VERSION" logo image text from the GTK+ UI.
Add full release and automatic update information at the bottom.
Remove the short version from the welcome banner (top left).
To do:
- Add back support for gui_version_placement.
- Move the version and repository branch to the flavor label?
- Add update links as appropriate to the bottom.
- Clean up layout and spacing.
Change-Id: I28af33e6c2beb855f803a2dfedef49f3e8389057
Reviewed-on: https://code.wireshark.org/review/7071
Reviewed-by: Gerald Combs <gerald@wireshark.org>
With Qt Wireshark the title bar persists in reporting "Capturing from <interface name>" even though capturing has stopped.
With GTK Wireshark once a live capture is stopped the title bar is updated to report the interface name(s) used for the unsaved capture file.
Issue reported by Jim Young
Bug:10948
Change-Id: Ia6099f63f82b6610ade5c81af0cf257236f076ec
Reviewed-on: https://code.wireshark.org/review/7050
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Use a UUID for the SimpleDialog primary delimiter instead of trying to
leverage Unicode.
Bug: 10953
Change-Id: Ib518b32ef65b50f311b061ab5a267e7d1aa9f01b
Reviewed-on: https://code.wireshark.org/review/7240
Reviewed-by: Gerald Combs <gerald@wireshark.org>
We don't want to encourage people to add to those lists, we want to
encourage people to subtract *from* those lists (either by fixing
warnings or, if an infelicitous API, or an infelicitous declaration of
an API on some platforms, or a program generator that doesn't take
sufficient care to avoid warnings - I'm looking at *you*, Flex - makes
it impossible to fix without introducing other problems, using the
DIAG_OFF()/DIAG_ON() macros if possible). Eliminate the empty lists, to
make it harder to fill them up again.
Change-Id: I298d07952c0cb1842a4ea71ba7e07c68e94a04e9
Reviewed-on: https://code.wireshark.org/review/7229
Reviewed-by: Guy Harris <guy@alum.mit.edu>
It looks like QPaintDevice::devicePixelRatio() was added in 5.1.
Back out some debugging code.
Change-Id: I40f19c0d7901ce95f587531983e5c6644daf64f4
Reviewed-on: https://code.wireshark.org/review/7226
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Make sure our intermediate pixmaps have the same number of pixels as the
screen.
A merge request with the same changes has been made upstream.
Change-Id: I19950181d52f347e3aa7f5abb6e9ad33a4097abf
Reviewed-on: https://code.wireshark.org/review/7224
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Bug: 10951
Change-Id: I958aa9e88c30ac20cd7d7971ee903ac97265c1f4
Reviewed-on: https://code.wireshark.org/review/7098
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Martin Kaiser <wireshark@kaiser.cx>
Otherwise it ends up with a generic icon.
Change-Id: I47292c966332073d07ef358316cf8b40bcf1329b
Reviewed-on: https://code.wireshark.org/review/7200
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Clang Static Analyzer reported that function link_changed uses a garbage
value for "device.links" which is indeed the case when
global_capture_opts.all_ifaces->len == 0.
There seem to be some issues here:
- When global_capture_opts.all_ifaces->len == 0, then device is
uninitialized.
- When no interface name matches, the last entry will always be
updated.
- There is duplicate code querying for the interface by name.
This patch addresses the above issues by extracting the interface name
check into a new utility function which returns NULL when a device is
not found. Then the callers (such as link_changed) will check this
value.
While at it, stop storing a copy of (interface_t), use a pointer
instead. This allows for removal of g_array_remove_index followed by
g_array_insert_val.
Verified with clang 3.5.1.
Change-Id: I03e0f179577a23a3f1efdca768e67922273192f0
Reviewed-on: https://code.wireshark.org/review/7145
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
If the UAT file failed a field check, then the user_data pointer may be
empty. As a result uat_save() triggers an invalid write.
(Discovered while working with a dfilter_macros file having duplicate
names for bug 10957, caught by ASAN.)
The second issue fixed in this patch is that the validity of an item is
only calculated when a new record is added. So even if the user edits
the UAT and makes the entry valid, it would not be saved. This is solved
by adding a new uat_update_record() function which got wires up into GTK
and Qt.
Some open-coded g_array_index and UAT[_USER]_INDEX_PTR are also
converted.
Even after this patch, Qt has some issues with UAT handling. In
particular, it saves new, but empty/invalid, items. It also it does not
check individual fields when saving all fields (unlike Gtk). This patch
focused on getting Gtk fixed first so ignores those existing issues.
Change-Id: Ia35cfe9d2b793c65144ae7e29a1ed706b6668d99
Reviewed-on: https://code.wireshark.org/review/7120
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Update the protocol hierarchy, conversation, and endpoint sections of
the User's Guide. When everything is an admonition nothing stands out.
Make a series of "NOTE"s plain old paragraphs. Scale the new
conversation and endpoint images to fit the page width. This looks funny
in my browser but I'm not sure about the best way to fix it.
Move image/compress-pngs to the tools directory. Use it to reduce the
size of the WSUG and WSDG images.
Fixup traffic table column names and window titles.
Change-Id: I674342ed901fc64563b384ee5e1f35413736cb19
Reviewed-on: https://code.wireshark.org/review/7122
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Quit the application when the main window closes. This cleans up any
other top-level windows that might be open.
Don't dereference a NULL pointer when opening the sequence dialog from
the VoIP calls dialog.
Change-Id: I9902d40ead1c5f2e541b6d79f3d957228e4e9687
Reviewed-on: https://code.wireshark.org/review/7107
Reviewed-by: Gerald Combs <gerald@wireshark.org>
You can open a new packet window in the GTK+ UI by holding down the
shift key and double-clicking on a frame link in the protocol tree. Add
this behavior to the Qt UI. Document the different ways of opening a new
packet window and update the image.
Change-Id: I55caf6cc8089a6c305fafd47b4870e7c69dbfb10
Reviewed-on: https://code.wireshark.org/review/7101
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Initialize WiresharkDialog with a NULL parent. This should make its
subclasses behave like independent windows.
Change-Id: If84609eeba53a92780c0873a1243888998d2b26b
Reviewed-on: https://code.wireshark.org/review/7094
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
It made some slot signatures unusable.
Change-Id: I0f7cdad9e84a5ffb2bdfe4042ac93b3ea19b4893
Reviewed-on: https://code.wireshark.org/review/7095
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Set Qt::Window when we initialize QDialog. This should add a minimize
button to most of the dialogs that need one.
Change-Id: I8595dee9c6a28a4e0a8518213176ba10a6d8dcc6
Reviewed-on: https://code.wireshark.org/review/7093
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Connect the packet list's doubleClicked signal to the main window's
openPacketDialog slot.
Change-Id: I5bc20c113fb1f22e2257fc1dbdef76c9920e05d0
Reviewed-on: https://code.wireshark.org/review/7092
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Allow persistence across files. Preserve the use of "window" even
though we're really a dialog.
Update ByteViewTab and ProtoTree to support multiple instances.
Remove the need for a cast in frame_data.
Add more forward declarations.
Change-Id: I50d3d9d1455b8ecc158a37218f9e41fe696d5ae2
Reviewed-on: https://code.wireshark.org/review/7086
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
In theory this this should reduce compilation times. On my particular
system it makes no difference but hopefully it will elsewhere.
Change-Id: I570177d3ca4eec691c82d46b4dbbce74092aac1d
Reviewed-on: https://code.wireshark.org/review/7060
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
uuid_t is a data type provided by a number of environments, thanks to
the Open Software Fuundation; calling the Bluetooth code's data type,
which includes an actual OSF-style UUID as a member, "uuid_t" can lead
to confusion and *does* lead to compile errors on platforms where, for
better or worse, system headers such as <unistd.h> define uuid_t (and
are included by, for example, Qt headers).
Just rename it "bluetooth_uuid_t".
Change-Id: Ic742723913ba4105cd3269dd24fc821147285176
Reviewed-on: https://code.wireshark.org/review/7017
Reviewed-by: Guy Harris <guy@alum.mit.edu>
It is a GUI+QT feature that introduce Bluetooth menu and
"ATT Server Attributes" that present all handle+UUID pairs
as table. User may copy cell value, row, selected rows or whole
table within header. On activate user will go to packet that
introduce UUID for specified handle.
Change-Id: If17e53aff5feb89ededc740a595ba5882b90be5e
Reviewed-on: https://code.wireshark.org/review/6911
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
The tap listener was handling rtpstream_tapinfo_t* types while other
users was expecting a GList* instead. Fix this and avoid future
confusion by replacing void* pointers.
Ping-Bug: 10714
Change-Id: I66f62eaaed4a529714264bbf4e7ad1e72b46ce5a
Reviewed-on: https://code.wireshark.org/review/6997
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Merge in the old ColorDialog which was a placeholder for
color_filter_add_cb.
Change-Id: I48d188509f480b8514122b4011ac9d8790fcca10
Reviewed-on: https://code.wireshark.org/review/6996
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Main window:
Keep track of our current layout and only change it if the preferences
change. This keeps the panes from resizing.
Re-select the current packet if the layout changes so that the proto
tree and byte view aren't left in an invalid state. This fixes a crash
similar to bug 10896.
Search frame:
Get rid of an invalid error message. Update coding style.
I don't think any of these fix bug 10921 since Xiaochuan seems to get a
crash immediately upon opening the dialog.
Change-Id: I0e880a50d3c9ac1c6ae6a01034b05fd2249444f4
Reviewed-on: https://code.wireshark.org/review/6989
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This implementation is slightly different compared to other dialogs
since we have nested items.
Tweak the bar highlight color look better on Windows while we're here.
Change-Id: If0607c4624f304042fe3d6c8a941756b342e703d
Reviewed-on: https://code.wireshark.org/review/6953
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Change-Id: Ib13d9391b64dad19321a4399c95b95d7fb791284
Reviewed-on: https://code.wireshark.org/review/6421
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Decorate val_to_qstring() and val_ext_to_qstring() similarly to
val_to_str_wmem(); this squelches some compiler warnings.
Change-Id: I86e102e7c0a1a135be9492b7d605001c5d922031
Reviewed-on: https://code.wireshark.org/review/6940
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This fixes also the "duplicate messages" error.
Change-Id: Iec93d82d4776c4f9805c5bfa2b2453c22b0e24e8
Reviewed-on: https://code.wireshark.org/review/6929
Petri-Dish: Graham Bloice <graham.bloice@trihedral.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
val_to_str_ext now officially uses wmem_packet_scope().
Removed const from val_to_str[_ext]_wmem return value since it's not really constant.
Created utility functions in qt_ui_utils.h to help with the new memory management for its GUI.
Change-Id: Idf2ce4a4ce78d628b2269ad23a3a48fbfc9c077c
Reviewed-on: https://code.wireshark.org/review/6926
Reviewed-by: Michael Mann <mmann78@netscape.net>
Make sure our IOGraphs remove their respective tap listeners before the
capture file closes, otherwise the graph data ends up getting cleared
via reset_tap_listeners.
Bug: 10871
Change-Id: I0ef2af2dc84be1921a930df8bb68f63626aa874a
Reviewed-on: https://code.wireshark.org/review/6925
Reviewed-by: Gerald Combs <gerald@wireshark.org>
g9a3676a reset the Qt library path *after* wsApp was instantiated, which
is too late. Do so before QCoreApplication has a chance to do anything
we might regret.
Change-Id: Ibbdb69d1b7c0ea4bf1042e98a5bb5deba13e954e
Reviewed-on: https://code.wireshark.org/review/6864
Reviewed-by: Gerald Combs <gerald@wireshark.org>
I recently rebuilt my Windows development VM and discovered that I could
no longer run Wireshark executables from wireshark.org. Trying to do so
failed with the following error:
----
This application failed to start because it could not find or load the
Qt platform plugin "windows".
Available platform plugins are: minimal, offscreen, windows, windows.
Reinstalling the application may fix this problem.
----
As it turns out there are two issues. According to
http://doc.qt.io/qt-5/windows-deployment.html The search path
for Qt plugins is hard-coded into the QtCore library. Dependency
Walker confirmed this, showing that Qt5Core.dll tried to load
C:\Qt\5.3\msvc2013_64_opengl\plugins\platforms\qwindows.dll instead of
C:\Program Files\Wireshark\platforms\qwindows.dll.
The second issue is that the Qt online installer only uses the major
and minor version, e.g. C:\Qt\5.3. This means that you can end up with
Qt 5.3.0, .1, .2, or .3 depending on *when* you run the installer.
The Windows builders have 5.3.1 installed while my development VM
has 5.3.2. Apparently qwindows.dll is not compatible between these two
versions, hence the startup error. (...so what happens if you can create
a malicious qwindows.dll which *is* compatible on someone's machine?)
This change removes any entries from QCoreApplication::libraryPaths that
don't match our executable path. This shouldn't be an issue in our case
because both the NMake+QMake and CMake environments run windeployqt to
copy in any required DLLs.
If it *is* an issue or if clearing the library path list causes other
problems I can reinstall Qt on the Windows builders into a unique and
obvious path, e.g. C:\Qt-check-your-path-before-you-wreck-your-path\5.3
Change-Id: I1918bc4e520aba32cfcf9f4ccd37bf9255058cbe
Reviewed-on: https://code.wireshark.org/review/6863
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add keyboard shortcuts. Note that not all of the buttons made it from
GTK+. Add a "Go to setup frame" option.
Move rtp_streams.c from ui/gtk to ui.
Add a help URL for RTP analysis (which needs to be split into streams +
analysis).
Fix RTP stream packet marking.
Change-Id: Ifb8192ff701a933422509233d76461a46e459f4f
Reviewed-on: https://code.wireshark.org/review/6852
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add address_to_qstring and address_to_display_qstring, which wrap
address_to_string and address_to_display respectively and return
QStrings. Convert most of the instances in ui/qt to the new routines.
Fix a some memory leaks in the process.
Change-Id: Icda80bbfe0b2df723d54c8da84355255f819af89
Reviewed-on: https://code.wireshark.org/review/6848
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Move the clear() calls in gee320ef a bit earlier in the code to
PacketList::freeze. No model means no packets.
Bug: 10896
Change-Id: Ie440e3da4c5fb601048f4e94c8712ecf2d864d4f
Reviewed-on: https://code.wireshark.org/review/6823
Reviewed-by: Sean Stalley <seanstalley@gmail.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Change-Id: I256fd5395b062fa954ebd60598721323ea1d7ff1
Bug: 10875
Reviewed-on: https://code.wireshark.org/review/6713
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Change-Id: I3ac80a13da91452de4c857abfd6f2661b00e2f5d
Reviewed-on: https://code.wireshark.org/review/6815
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Otherwise trying to interact with them will cause all sorts of funny crashes.
There's probably a better way to trigger these (having the widgets register for
a signal, and sending that signal, or something something something) but this
works and I don't feel like reading 20 pages of Qt documentation right this
instant.
Change-Id: Ic52806ae5ba8d7776f835695590559b8c705d083
Ping-Bug: 10896
Reviewed-on: https://code.wireshark.org/review/6803
Reviewed-by: Evan Huus <eapache@gmail.com>
Setting the windowIcon property in foo.ui means we end up with a
setWindowIcon call in ui_foo.h. Along with setting the window title
bar icon, it also sets the taskbar icon on Windows. A 16x16 PNG gives
us a jaggy taskbar icon. (Windows ICO format is supported via a plugin
which might not be available everywhere, otherwise we could try using
a .ico resource.)
Move the setWindowIcon call from ge990d1b to the top of the MainWindow
constructor and enable it everywhere.
Change-Id: I4e9765200bb3676c4faa8e0ab1505ce02fb64870
Reviewed-on: https://code.wireshark.org/review/6762
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Get rid of references to ep_ and se_ allocation in code that now uses
wmem allocation instead.
Fix API documentation of conversation_table.h routines to reflect that
as well - some APIs changed to pass wmem scopes.
Also, zbee_sec_key_hash() now takes the output buffer as an argument and
just returns it, and nobody actually uses the return value, so change it
to return void.
Change-Id: Ife1ec675a9322fd0f0be306a9d639ec17aad1c7a
Reviewed-on: https://code.wireshark.org/review/6636
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Have dfilter_compile() take an additional gchar ** argument, pointing to
a gchar * item that, on error, gets set to point to a g_malloc()ed error
string. That removes one bit of global state from the display filter
parser, and doesn't impose a fixed limit on the error message strings.
Have fvalue_from_string() and fvalue_from_unparsed() take a gchar **
argument, pointer to a gchar * item, rather than an error-reporting
function, and set the gchar * item to point to a g_malloc()ed error
string on an error.
Allow either gchar ** argument to be null; if the argument is null, no
error message is allocated or provided.
Change-Id: Ibd36b8aaa9bf4234aa6efa1e7fb95f7037493b4c
Reviewed-on: https://code.wireshark.org/review/6608
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Change-Id: I973c672e9d573ad67e9b9fd82a5610aaf8a74efa
Reviewed-on: https://code.wireshark.org/review/6605
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Change-Id: Ifa96dc38a277b86c28f762489251dcc595afae67
Reviewed-on: https://code.wireshark.org/review/6603
Reviewed-by: Michael Mann <mmann78@netscape.net>
Change-Id: I7a40c0996517aa71b4ddb764ce3a6e92a55260ad
Reviewed-on: https://code.wireshark.org/review/6589
Reviewed-by: Michael Mann <mmann78@netscape.net>
Wireshark Qt does not add plug-ins that register with stats_tree_register_plugin() to the statistics menu in the ui (like the gtk version does).
This patch dynamically adds all registered stats_tree plug-ins to the statistics menu.
Bug: 9528
Change-Id: I99f9415502ca9f7121d494c856861edc1a762079
Signed-off-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-on: https://code.wireshark.org/review/6336
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Instead of always ignoring the return value, always check it, and only
report an error if it returns FALSE.
(Alternative: have it return NULL on success and a pointer to a
g_malloc()ed string on failure.)
Fix a comment while we're at it.
Change-Id: Icb72c9f47775b6552e3eb4fe5ddcc85482bfb5fb
Reviewed-on: https://code.wireshark.org/review/6528
Reviewed-by: Guy Harris <guy@alum.mit.edu>
UAT error strings are usually allocated by g_strdup() or
g_strdup_printf(), and must ultimately be freed by the caller.
Make the pointer-to-error-string-pointer arguments to various functions
be "char **", not "const char **".
Fix cases that finds where a raw string was being used, as that won't
work if you try to free it; g_strdup() it instead.
Add a missing free of an error string.
Remove some no-longer-necessary casts.
Remove some unnecessary g_strdup()s (the string being handed to it was
already g_malloc()ated).
Change some variable declarations to match.
Put in XXX comments for some cases where the error string is just freed,
without being shown to the user.
Change-Id: I40297746a2ef729c56763baeddbb0842386fa0d0
Reviewed-on: https://code.wireshark.org/review/6525
Reviewed-by: Guy Harris <guy@alum.mit.edu>