ladybird/Userland/Utilities/notify.cpp
Max Trussell 99b263a2db Userland/Notify: Check if optional icon arg is null before loading
The commandline "notify" application was always attempting to load an
icon path from an optional argument, even when the argument was
omitted. In this case, the image icon argument would be a null pointer
and the notify program would crash.

This fix adds a conditional to only attempt to load the icon file if
the icon_path variable is not a null pointer
2021-12-19 00:50:53 -08:00

34 lines
1.1 KiB
C++

/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibCore/ArgsParser.h>
#include <LibGUI/Application.h>
#include <LibGUI/Notification.h>
#include <LibGfx/Bitmap.h>
int main(int argc, char** argv)
{
auto app = GUI::Application::construct(argc, argv);
Core::ArgsParser args_parser;
const char* title = nullptr;
const char* message = nullptr;
const char* icon_path = nullptr;
args_parser.add_positional_argument(title, "Title of the notification", "title");
args_parser.add_positional_argument(message, "Message to display in the notification", "message");
args_parser.add_positional_argument(icon_path, "Path of icon to display in the notification", "icon-path", Core::ArgsParser::Required::No);
args_parser.parse(argc, argv);
auto notification = GUI::Notification::construct();
notification->set_text(message);
notification->set_title(title);
if (icon_path)
notification->set_icon(Gfx::Bitmap::try_load_from_file(icon_path).release_value_but_fixme_should_propagate_errors());
notification->show();
return 0;
}